Anonymous
Получить столбец значений из указанного подмассива многомерного массива
Сообщение
Anonymous » 23 ноя 2024, 02:23
У меня есть массив, содержащий некоторые данные. например:
Код: Выделить всё
$data = array(
'CATEGORY 1' => array(
array('id'=> 0, 'name' => 'John', 'category' => 'CATEGORY1'),
array('id'=> 1, 'name' => 'Jack', 'category' => 'CATEGORY1'),
array('id'=> 2, 'name' => 'Jame', 'category' => 'CATEGORY1'),
),
'CATEGORY 2' => array(
array('id'=> 0, 'name' => 'Mile', 'category' => 'CATEGORY2'),
array('id'=> 1, 'name' => 'Mike', 'category' => 'CATEGORY2'),
array('id'=> 2, 'name' => 'Matt', 'category' => 'CATEGORY2'),
)
);
Теперь как мне написать такую функцию:
Код: Выделить всё
if ($post ='CATEGORY 1') {
// filter all the name where category => CATEGORY1
}
Ожидаемый результат:
Я пробовал так:
Код: Выделить всё
$filters = array(
"id" => array(
"filter" => FILTER_VALIDATE_INT,
"flags" => FILTER_FORCE_ARRAY,
"options" => array(
"min_range" => 1,
"max_range" => 120
)
),
"name" => array(
"filter" => FILTER_CALLBACK,
"options" => "ucwords"
),
"category" => array(
"filter" => FILTER_CALLBACK,
"options" => "ucwords"
)
);
print_r(filter_var_array($data, $filters));
Но это возвращает мне ноль. Как я могу выполнить поиск в массиве с условием, что категория равна категории 1, и получить все имена, принадлежащие этому массиву?
Подробнее здесь:
https://stackoverflow.com/questions/330 ... onal-array
1732317820
Anonymous
У меня есть массив, содержащий некоторые данные. например: [code]$data = array( 'CATEGORY 1' => array( array('id'=> 0, 'name' => 'John', 'category' => 'CATEGORY1'), array('id'=> 1, 'name' => 'Jack', 'category' => 'CATEGORY1'), array('id'=> 2, 'name' => 'Jame', 'category' => 'CATEGORY1'), ), 'CATEGORY 2' => array( array('id'=> 0, 'name' => 'Mile', 'category' => 'CATEGORY2'), array('id'=> 1, 'name' => 'Mike', 'category' => 'CATEGORY2'), array('id'=> 2, 'name' => 'Matt', 'category' => 'CATEGORY2'), ) ); [/code] Теперь как мне написать такую функцию: [code]if ($post ='CATEGORY 1') { // filter all the name where category => CATEGORY1 } [/code] Ожидаемый результат: [code]['John', 'Jack', 'Jame'] [/code] Я пробовал так: [code]$filters = array( "id" => array( "filter" => FILTER_VALIDATE_INT, "flags" => FILTER_FORCE_ARRAY, "options" => array( "min_range" => 1, "max_range" => 120 ) ), "name" => array( "filter" => FILTER_CALLBACK, "options" => "ucwords" ), "category" => array( "filter" => FILTER_CALLBACK, "options" => "ucwords" ) ); print_r(filter_var_array($data, $filters)); [/code] Но это возвращает мне ноль. Как я могу выполнить поиск в массиве с условием, что категория равна категории 1, и получить все имена, принадлежащие этому массиву? Подробнее здесь: [url]https://stackoverflow.com/questions/33052142/get-a-column-of-values-from-the-specified-subarray-of-a-multidimensional-array[/url]