[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с именованными массивами.
dennnyk
Дурацкий вопрос , но я потерялся. Не подскажет ли уважаемый АЛЛ как вынуть из именованного массива строку значений по значению одного параметра ...

А именно: Есть именованный массив $Part. Один из его элементов parameters тоже массив.
$Part = Array ( [part_number] => 1 [part_object] => stdClass Object ( [type] => 0 [encoding] => 3 [ifsubtype] => 1
[subtype] => PLAIN [ifdescription] => 0 [ifid] => 0 [lines] => 13 [bytes] => 936 [ifdisposition] => 0 [ifdparameters] => 0
[ifparameters] => 1 [parameters] => Array ( [0] => stdClass Object ( [attribute] => charset [value] => KOI8-R ) ) ) )

Вот и гадаю как достать для строки значений удовлетворяющий условию part_number = 1 нулевой элемент "подмассива" parameters ?

Что пробовал:
$part[0], $part[part_number=='1'], $part[part_number=>'1'], $part->part_number->'1' 

Заранее благодарен ...



Спустя 5 минут, 38 секунд (15.06.2010 - 16:34) Basili4 написал(а):
попробуй так
$part[array_search(1,$part,true)][0]; - но это в случае когда ты точно знаешь что 1 есть в массиве $part

Спустя 3 минуты, 45 секунд (15.06.2010 - 16:38) dennnyk написал(а):
Понял - спасибо за вариант. Хотя конечно 1 там может быть где угодно - полей много.
А что никак нельзя зафиксировать как-то условие, что интересуют записи где part_number==1 ? В каком-то поиске может ?
Вообще на вариант "$part[part_number=='1']" интерпретатор совершенно не ругается - но толку НОЛЬ.

Спустя 9 минут (15.06.2010 - 16:47) Basili4 написал(а):
array_search смотри синтаксис это функция ищет в массиве можно делать в два этапа
1. $row=array_search ( условия для поиска синтаксис посмотри)
2. $row[ укажи желаемое тобой значение ] Конструкция
"$part[part_number=='1']" приводится я так думаю к виду - $part[1] или $part[0] в зависимости есть ли константа part_number и равна ли она 1

Спустя 18 минут, 47 секунд (15.06.2010 - 17:05) tomash написал(а):

for ($i=0, $i < count($array_of_part), $i++)
{
$part = $array_of_part[$i];
if ($part['part_number'] == 1)
{
print ['$part']['part_object']['parameters'][0];
}
}


Спустя 41 минута, 46 секунд (15.06.2010 - 17:47) dennnyk написал(а):
Отлично! Как я сам не допер - курить надо бросать. Спасибо!

Спустя 2 часа, 43 минуты, 36 секунд (15.06.2010 - 20:31) qpayct написал(а):
foreach ($array_of_part as $key => $val)
if ($part['part_number'] == 1) print ['$part']['part_object']['parameters'][0];


Спустя 1 час, 10 минут, 3 секунды (15.06.2010 - 21:41) tomash написал(а):
qpayct
Виноват, действительно с foreach шустрее будет! Нужно отучать себя от for

Спустя 12 часов, 11 минут, 26 секунд (16.06.2010 - 09:52) Basili4 написал(а):
Все таки самый шустрый вариант будет с search_array smile.gif

Спустя 2 минуты, 7 секунд (16.06.2010 - 09:54) tomash написал(а):
Basili4
а условия задачи посмотри, там search_array не нужен)))

Спустя 1 час, 19 минут, 55 секунд (16.06.2010 - 11:14) dennnyk написал(а):
Search_Array неизвестно все же что найдет.
Как говорил параметров много ...
Вот как я сделал.

foreach($part as $pr)
{
if ($pr->part_number == 1)
break;
}
$parms = $pr->parameters[0];
...



Спустя 44 минуты, 2 секунды (16.06.2010 - 11:58) tomash написал(а):
а зачем цикл? и вобще логика явно хромает o_O
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.