--------------------------------------------------------------------------------------------------------- /* |----------------------------------------------------------|array_map();将回调函数作用到给定数组的单元上|array_column();快速实现:
---------------------------------------------------------------------------------------------------------
<span>/*</span><span> |---------------------------------------------------------- |array_map();将回调函数作用到给定数组的单元上 |array_column();快速实现:将二维数组转为一维数组 |---------------------------------------------------------- </span><span>*/<br /></span>
array array_column ( array $input , mixed $column_key [, mixed $index_key ] );
返回input数组中值为column_key的列; 如果指定了可选参数index_key,返回的数组中 对应键 为input数组值index_key对应的值。
<span>例一:<br />$records</span> = <span>array</span><span>(
</span><span>array</span><span>(
</span>'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',<span>
)</span>,
<span>array</span><span>(
</span>'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',<span>
)</span>,
<span>array</span><span>(
</span>'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',<span>
)</span>,
<span>array</span><span>(
</span>'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',<span>
)
);
</span><span>$first_names</span> = array_column(<span>$records</span>, 'first_name'<span>);
</span><span>print_r</span>(<span>$first_names</span>);<br />/*<br />输出:Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)*/
<span>例二:<br />$last_names</span> = array_column(<span>$records</span>, 'last_name', 'id'<span>); </span><span>print_r</span>(<span>$last_names</span>);<br />/*<br />输出:
Array
(
[2135] => Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)*/
立即学习“PHP免费学习笔记(深入)”;
<span>当没有array_column()函数情况下,
</span><span>//</span><span>使用array_map()实现例一:</span>
<span>$a</span> = <span>array_map</span>(<span>function</span>(<span>$element</span>){ <span>//</span><span>$records作为参数传入回调函数</span>
<span>return</span> <span>$element</span>['last_name']; <span>//</span><span>返回数组元素值的last_name对应值</span><span>
}</span>, <span>$records</span>); <span>//</span><span>array_map返回数组,相当于把每个$element['last_name']存入新数组,所以是新建的索引</span>
立即学习“PHP免费学习笔记(深入)”;
<span>//</span><span>使用foreach实现例一:</span>
<span>foreach</span>(<span>$records</span> <span>as</span> <span>$v</span><span>)
{
</span><span>$b</span>[] = <span>$v</span>['last_name'<span>];
}</span>
立即学习“PHP免费学习笔记(深入)”;
<span>//</span><span>使用foreach实现例二:</span>
<span>$c</span> = <span>array</span><span>();
</span><span>foreach</span>(<span>$records</span> <span>as</span> <span>$k</span>=><span>$v</span><span>)
{
</span><span>$c</span> += <span>array</span>(<span>$v</span>['id']=><span>$v</span>['last_name']); <span>//</span><span>使用+运算符, 以追加的形式(不改变原数组索引), 合并组装的数组</span><span>
} </span><span>//</span><span>若使用array_merge,数字键名将被重新编号</span>
立即学习“PHP免费学习笔记(深入)”;
在取出的多条数据中,典型的二维数组,如果需要使用数据中单一的 值与值 对应的情况,array_column()即可完成,但是面对较复杂的数组结构,foreach才能让你更灵活,不过优先使用系统函数总是首选的。
立即学习“PHP免费学习笔记(深入)”;
Link: http://www.cnblogs.com/farwish/p/3855831.html
@黑眼诗人
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号