我正在尝试转换以下数组
Array
(
[0] => Array
(
[535fd7566a10d96c2ac04d2e26e210c4] => Jane Apple
)
[1] => Array
(
[3cdacd430d6a70acbe4caf9712a76824] => Johnny Apple
)
...
)
采用以下格式。
Array
(
[535fd7566a10d96c2ac04d2e26e210c4] => Jane Apple,
[3cdacd430d6a70acbe4caf9712a76824] => Johnny Apple,
...
)
我尝试过通过堆栈溢出找到的一些不同的功能,谷歌但没有运气。
任何人对如何达到我想要的结果都有任何想法?
谢谢,
答案 0 :(得分:5)
我相信
array_reduce($array, 'array_merge', [])
应该做的伎俩
基本上你想将一个值数组(每个数组)减少到一个值(一个数组),因此就是array_reduce。并且merge接受一个项目(数组)并将其与另一个数组(在这种情况下为carry)合并,以生成所需的数组。
只是想提供一个非循环的答案; o)
答案 1 :(得分:3)
运行两个foreach
循环;一个嵌套在另一个之下;这样你就会得到理想的结果:
foreach
会将数组分开,并且"展平"它。我们开始吧,
// setup array
$array = array (
0 => array(
'535fd7566a10d96c2ac04d2e26e210c4' => 'Jane Apple'
),
1 => array(
'3cdacd430d6a70acbe4caf9712a76824' => 'Johnny Apple'
)
);
// first foreach loop will take original array and loop through it creating a new one
foreach ($array as $new_array)
{
// now loop through the new array and separate it as key value pair; you will now have the desired result
foreach ($new_array as $key => $val)
{
$user[$key] = $val;
}
}
您将获得以下输出:
Array
(
[535fd7566a10d96c2ac04d2e26e210c4] => Jane Apple
[3cdacd430d6a70acbe4caf9712a76824] => Johnny Apple
)
答案 2 :(得分:1)
你也可以这样做一个循环:
<?php
print_r($arr = [
['535fd7566a10d96c2ac04d2e26e210c4' => 'Jane Apple'],
['3cdacd430d6a70acbe4caf9712a76824' => 'Johnny Apple']
]);
foreach ($arr as $v) {
$key = array_keys($v)[0];
$arr2[$key] = $v[$key];
}
print_r($arr2);
?>