
PHP如何将二维数组转换成一维的?
在使用php时候,我们经常要进行sql查询,而从数据库查询出来的往往是这个结构的:
Array
(
[0] => Array (
[score] => 100
)
[1] => Array (
[score] => 98
)
[2] => Array (
[score] => 70
)
[3] => Array (
[score] => 86
)
)
这时候我们需要取出其中的id ,如果使用for循环或者foreach需要两层,这种操作未免有些麻烦,这时候我们可以用array_column()这个函数,array_column接受两个参数,第一是需要转换的二维数组,第二个是想要保留的键名,比如我们需要的结果是这样的:
Array
(
[0] => 100
[1] =>98
[2] =>70
[3] =>86
)
只需要array_column($arr,”score”)就可以了,但是有个问题。这个函数只支持php版本在5.5以上的,如果用户的php版本太低怎么办的,这里有一个自定义的函数,是模拟这个函数的功能,仅供参考:
//二维转一维
function i_array_column($input, $columnKey, $indexKey = null) {
$columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;
$indexKeyIsNull = (is_null($indexKey)) ? true : false;
$indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;
$result = array();
foreach ((array) $input as $key => $row) {
if ($columnKeyIsNumber) {
$tmp = array_slice($row, $columnKey, 1);
$tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;
} else {
$tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;
}
if (!$indexKeyIsNull) {
if ($indexKeyIsNumber) {
$key = array_slice($row, $indexKey, 1);
$key = (is_array($key) && !empty($key)) ? current($key) : null;
$key = is_null($key) ? 0 : $key;
} else {
$key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
}
}
$result[$key] = $tmp;
}
return $result;
}
【全文完】
版权声明:
1、西安弈聪网站内容中凡注明“来源:XXX(非西安弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,百度关键词优化,西安软件开发等技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“西安弈聪”的作品系本站版权所有,任何人转载请署名来源,否则西安弈聪将追究其相关法律责任。
2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。
