Поиск по многомерному массиву php

320
30 сентября 2017, 23:21

Здравствуйте. Имеется массив такого вида:

array (
    "a1" => array (
array(
"test1" => "example1",
"test2" => "example2",
"test3" => "example3",
),
 array( 
"test1" => "example1",
"test2" => "example2",
"test3" => "example3",
),
array( 
"test1" => "example1",
"test2" => "example2",
"test3" => "example3",
)),
    "a2" => array (
array(
"test1" => "example1",
"test2" => "example2",
"test3" => "example3",
),
array( 
"test1" => "example1",
"test2" => "example2",
"tes3t" => "example3",
),
array( 
"test1" => "example1",
"test2" => "example2",
"tes3t" => "example3",
)
);

В php новичок. Обычным перебором foreach получилось сделать, но думаю есть более правильный метод. Необходимо 3 вещи. 1) Ключи (а1, а2)

 array (a1,a2)

2) Из ключа a1 вывести все значения ключей "test1"

 array (example1, example1, example1)

3) Ключ => значение одного выбранного подмассива a1

array ("test1" => "example1",
"test2" => "example2",
"tes3t" => "example3",
)

Буду очень благодарен за помощь

Answer 1

1.Если просто ключи из этого массива, то воспользуйтесь функцией array_keys:

var_dump(array_keys($array));

Результат будет:

array(2) {
  [0]=>
  string(2) "a1"
  [1]=>
  string(2) "a2"
}

2.Тоже делается просто одной функцией array_column (PHP 5.5+)

var_dump(array_column($array['a1'], 'test1'));

Результат будет:

array(3) {
  [0]=>
  string(8) "example1"
  [1]=>
  string(8) "example1"
  [2]=>
  string(8) "example1"
}

3. Не пойму в чём сложность, просто обращаетесь по ключу и получаете данные.

READ ALSO
Работа return в рекурсивной функции php

Работа return в рекурсивной функции php

Доброго времени сутокЕсть код

208
Не получается добавить custom order item data woocommerce

Не получается добавить custom order item data woocommerce

На странице продукта(отеля) есть пять кнопок ADD TO CART, все они кастомные и на первой из них висит шорткод:

225
Модуль PHP7 не подключается к Apache

Модуль PHP7 не подключается к Apache

В файле httpdconf прописываю

197