我有一个来自api调用的数组。 我想先格式化它,然后再在视图中播放值。
这是我的数组
$myArray = array(
array(
array(
"Name" => "firstname",
"Value" => "Mat"
),
array(
"Name" => "name",
"Value" => "Doe"
),
array(
"Name" => "city",
"Value" => "Dallas"
),
array(
"Name" => "date_of_birth",
"Value" => "1975-05-22T22:00:00Z"
),
)
);
我需要这样格式化
$myNewArray =
array(
"firstname" => "Mat",
"name" => "Doe",
"city" => "Dallas",
"date_of_birth" => "1975-05-22T22:00:00Z"
);
我正在尝试许多foreach,但没有成功。我正在寻找https://www.php.net/manual/en/ref.array.php上的函数数组,但不知道适合我的情况。
很好地指导我。谢谢
答案 0 :(得分:4)
您可以获取有价值的数据,然后将其与键组合
$myArray = array_shift($myArray);
$result = array_combine(array_column($myArray, 'Value'), array_column($myArray, 'Name'));
print_r($result);
使用array_column的其他替代方法,
$myArray = array_shift($myArray);
$result = array_column($myArray, 'Value','Name');
print_r($result);
输出:
Array
(
[firstname] => Mat
[name] => Doe
[city] => Dallas
[date_of_birth] => 1975-05-22T22:00:00Z
)
Demo。
array_column —从输入数组的单个列中返回值
答案 1 :(得分:0)
使用array_column
$res = array_column($myArray[0], 'Value','Name');
print_r($res);
OR
使用array_walk
$res = [];
array_walk($myArray[0], function($v, $k) use(&$res){
$res[$v['Name']] = $v['Value'];
});
echo '<pre>';
结果
Array
(
[firstname] => Mat
[name] => Doe
[city] => Dallas
[date_of_birth] => 1975-05-22T22:00:00Z
)