Копирование определенных ключей и значений многомерного массива PHP в другой массив - PullRequest
0 голосов
/ 08 июня 2018

У меня есть многомерный массив, подобный этому:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => mail_failures_only
            [value] => 0
        )

    [1] => Array
        (
            [id] => 2
            [name] => default_service_ttl
            [value] => 60
        )

    [2] => Array
        (
            [id] => 3
            [name] => version
            [value] => 5.0.0.0
        )

    [3] => Array
        (
            [id] => 4
            [name] => process_all_jobs
            [value] => 1
        )
)

Я хочу, чтобы каждое значение «name» и каждое значение «value» были преобразованы в ассоциативный массив, подобный этому:

process_all_jobs => 1

Как создать цикл конструирования для этого?

Я пробовал что-то вроде этого:

$system_config_array = array();
        if (is_array($configList)) {
            $keys = array_keys($configList);
            for($i = 0; $i < count($configList); $i++) {
                foreach($configList[$keys[$i]] as $key => $value) {
                    echo $key . " : " . $value . "<br>";
                    if($key!='id')
                        $system_config_array[$value] = '';
                }
            }
       }

, где $ configList - исходный массив.

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Надеюсь, это поможет вам:

$base = 'your array';
foreach ($base as $key => $value) {
    $data[$value['name']] = $value['value'];
}
print_r($data);

https://eval.in/1017632

0 голосов
/ 08 июня 2018

Использовать array_column .

$result = array_column($arr, "value", "name");  

Но это работает, только если имена уникальны.

Это не отвечает на ваш вопрос, чтобы создать для него цикл, но я верю, что array_column - лучший инструмент для работы

...