Bib*_*yal 7 php arrays dictionary multidimensional-array
我有一个类型数组
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Cena',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
));
Run Code Online (Sandbox Code Playgroud)
我想以以下格式显示输出
[2135] => John Cena
[5623] => Peter Doe
Run Code Online (Sandbox Code Playgroud)
我一直在使用以下代码来尝试显示我的预期结果,但它不起作用。
$names = array_column($records, 'first_name' . 'last_name', 'id');
Run Code Online (Sandbox Code Playgroud)
如何将两列数组连接成一列?
您可以使用 foreach 循环创建一个新数组。
尝试这个
$newArray = [];
foreach($records as $key => $value) {
$newArray[$value['id']]= $value['first_name']." ".$value['last_name'];
}
print_r($newArray);
Run Code Online (Sandbox Code Playgroud)
输出
Array
(
[2135] => John Cena
[5623] => Peter Doe
)
Run Code Online (Sandbox Code Playgroud)
您当前的代码不起作用的原因是您要求 PHP 在数组中查找$records键first_namelast_name不存在的
array_column仅返回单个列,如PHP 手册条目中所述
\n\n\n(PHP 5 >= 5.5.0、PHP 7)
\n\narray_column \xe2\x80\x94 返回输入中单个列的值
\n
您需要循环遍历数组并手动连接字符串。您可以使用的一项功能是array_reduce:
$names = array_reduce($records, function ($result, $item) {\n $result[$item[\'id\']] = $item[\'first_name\'] . \' \' . $item[\'last_name\'];\n return $result;\n});\nRun Code Online (Sandbox Code Playgroud)\n