首页>>技术前沿>>网站优化及SEO
PHP如何将二维数组转换成一维的?
作者:西安网站建设 | 原创 来源:西安软件开发公司 | 时间:2018年1月10日| 点击:0次 | 【评论】

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;

}

 

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: PHP二维数组 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、西安弈聪网站内容中凡注明“来源:XXX(非西安弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,百度关键词优化,西安软件开发等技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“西安弈聪”的作品系本站版权所有,任何人转载请署名来源,否则西安弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。