Как получить конкретные значения из всех индексов в массиве - PullRequest
0 голосов
/ 11 мая 2019

У меня есть массив, который я хочу перебрать, чтобы поместить элементы в поле выбора, но я не могу понять, как это сделать.

Массив, который я получаю из функции:

array(2) { 
    ["de"]=> array(10) { 
        ["id"]=> int(10) 
        ["order"]=> int(1) 
        ["slug"]=> string(2) "de" 
        ["locale"]=> string(5) "de-DE" 
        ["name"]=> string(7) "Deutsch" 
        ["url"]=> string(34) "http://localhost/werk/Mol/de/haus/" 
        ["flag"]=> string(66) "http://localhost/werk/Mol/wp-content/plugins/polylang/flags/de.png" 
        ["current_lang"]=> bool(false) 
        ["no_translation"]=> bool(false) 
        ["classes"]=> array(4) { 
            [0]=> string(9) "lang-item" 
            [1]=> string(12) "lang-item-10" 
            [2]=> string(12) "lang-item-de" 
            [3]=> string(15) "lang-item-first" 
            } 
        } 
    ["nl"]=> array(10) { 
        ["id"]=> int(3) 
        ["order"]=> int(2) 
        ["slug"]=> string(2) "nl" 
        ["locale"]=> string(5) "nl-NL" 
        ["name"]=> string(10) "Nederlands" 
        ["url"]=> string(26) "http://localhost/werk/Mol/" 
        ["flag"]=> string(66) "http://localhost/werk/Mol/wp-content/plugins/polylang/flags/nl.png" 
        ["current_lang"]=> bool(true) 
        ["no_translation"]=> bool(false) 
        ["classes"]=> array(4) { 
            [0]=> string(9) "lang-item" 
            [1]=> string(11) "lang-item-3" 
            [2]=> string(12) "lang-item-nl" 
            [3]=> string(12) "current-lang" 
            } 
        } 
} 

Я попробовал foreach, но я получил только индексы массива

<?php 
$translations = pll_the_languages(array('raw' => 1));

$lang_codes = array();

foreach ($translations as $key => $value) {
  array_push($lang_codes, $key);
}

?>

Мне нужны языковой флаг, URL и флаг из всех индексов в этом массиве (de & nl) что мне делать?

Ответы [ 2 ]

2 голосов
/ 11 мая 2019

Вы можете подойти к этому как

$res = [];
foreach($translations as $key  => $value){
   $res[$key] = [
    'slug' => $value['slug'],
    'url'  => $value['url'],
    'flag' => $value['flag']
   ];
 }

Live Demo

2 голосов
/ 11 мая 2019

Простая итерация по внешнему массиву и выбор нужных значений из подмассива.

<?php 
$translations = pll_the_languages(array('raw' => 1));

$lang_codes = array();

foreach ($translations as $lang => $info) {

    $lang_codes[$lang] = [  'slug' => $info['slug'],
                            'url' => $info['url'],
                            'flag' => $info['flag']
                        ];
}   
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...