парсинг многомерного массива php в многомерный массив javascript - PullRequest
0 голосов
/ 19 января 2019

Вуаля, моя проблема: моя PHP-переменная - это многомерный массив

var_dump($php_data);

результат:

array(3) { 
[0]=> array(5) { ["grey"]=> string(3) "aaa" ["black"]=> string(3) "bbb" ["blue"]=> string(3) "ccc" ["green"]=> string(3) "ddd" ["yellow"]=> string(3) "eee" ["brown"]=> string(3) "fff" }
[1]=> array(5) { ["grey"]=> string(3) "ggg" ["black"]=> string(3) "hhh" ["blue"]=> string(3) "iii" ["green"]=> string(3) "jjj" ["yellow"]=> string(3) "kkk" ["brown"]=> string(3) "lll" }
[2]=> array(5) { ["grey"]=> string(3) "mmm" ["black"]=> string(3) "nnn" ["blue"]=> string(3) "ooo" ["green"]=> string(3) "ppp" ["yellow"]=> string(3) "qqq" ["brown"]=> string(3) "rrr" } 
}

Я хочу извлечь только некоторое значение:

foreach (...as... =>...){
  ...
}
var js_array = echo json_encode(...);

чтобы получить массив JavaScript:

var js_array = [
  ['aaa', ccc, eee],
  ['ggg', iii, kkk],
  ['mmm', ooo, qqq],
];

Я блокирую в цикле ... Заранее благодарим за помощь

1 Ответ

0 голосов
/ 19 января 2019

Один из способов сделать это - определить нужные вам клавиши (значения не имеют значения).

$keys = ['grey' => 1, 'blue' => 1, 'yellow' => 1];

Затем используйте array_intersect_key в каждой строке, чтобы получить свой результат.

foreach ($array as $row) {
    $result[] = array_values(array_intersect_key($row, $keys));
}

array_values требуется там, потому что если у вас все еще есть строковые ключи, результатом json_encode будет массив объектов, а не массив массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...