PHP中高级工程师必须掌握的编码技巧
2019-03-13 22:12:49
<p>1.一个存储订单列表信息的二维数组,如何获取所有订单id(用php自带函数)?</p><pre>array_column($order_arr, 'order_id')</pre><p>此方法对于二维数组里每个元素是对象的仍然适用。</p><p><br></p><p>2.同样有一个存储订单列表信息的二维数组,此时给你一个订单id,如何获取该订单整条数据信息(用php自带函数)?</p><pre>$order_id_arr = array_column($order_arr, 'order_id');
$new_arr = array_combine($order_id_arr, $order_arr );
$order_info = $new_arr[$order_id];<br></pre><p><br></p><p>3.array_merge和array_combine的区别?</p><p>merge是合并两个数组,后一个数组接到前一个数组后面,只有当字符串键值对相同时,前一个数组的对应该键值的值才会被覆盖,即顺序是按照第一个数组的。示例如下:</p><pre>$a = array_merge( array('dog','blue'=>'zhai'), array('cat', 34, 'blue'=>'boy'));
var_dump($a);<br></pre><p>结果:</p><pre>array(4) {
[0]=>
string(3) "dog"
["blue"]=>
string(3) "boy"
[1]=>
string(3) "cat"
[2]=>
int(34)
}
</pre><div><br></div><div>4.function 后带use是干什么的?</div><div>use后变量的作用,是引入方法外部变量的。直接看如下示例:</div><pre>$message = '糊涂';
$example = function ($arg1, $arg2) use ($message) {
echo $arg1 .$arg2. $message;
};
$example('你', '真');<br></pre><div>结果:</div><pre>你真糊涂<br></pre><div>这里有个关于闭包函数的全面链接:<a href="https://blog.csdn.net/gezipml/article/details/83069561" target="_blank">https://blog.csdn.net/gezipml/article/details/83069561</a></div><div><br></div><div><br></div><div>5.二维数组排序,例如学生分数排名,订单按照总金额排序等。</div><pre>$score_arr = array_column($stu_arr, 'score');
$name_arr = array_column($stu_arr, 'name');
array_multisort($score_arr, SORT_ASC, $name_arr, SORT_DESC, $stu_arr );</pre><div>如上代码,代表先按分数排行,相同分数的,则按姓名排行。</div><blockquote>注意:array_multisort排序后的数组,不是通过返回值返回的。</blockquote><div><br></div>