Heim > Backend-Entwicklung > PHP-Tutorial > 二维数组中的一个【键的值】作为一维的 【键】

二维数组中的一个【键的值】作为一维的 【键】

WBOY
Freigeben: 2016-06-06 20:28:03
Original
1219 Leute haben es durchsucht

<code>$array = array(
    0 => array(
            'univs_id' => 1001,
            'univs_name' => '清华大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    1 => array(
            'univs_id' => 1002,
            'univs_name' => '北京大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    2 => array(
            'univs_id' => 1003,
            'univs_name' => '中国人民大学',
            'province_id' => 110000,
            'province' => '北京',
        ),
);</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样类型的数组,如果不使用foreach进行遍历如何能达到下面的效果

<code>$array = array(
    1001 => array(
            'univs_id' => 1001,
            'univs_name' => '清华大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    1002 => array(
            'univs_id' => 1002,
            'univs_name' => '北京大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    1003 => array(
            'univs_id' => 1003,
            'univs_name' => '中国人民大学',
            'province_id' => 110000,
            'province' => '北京',
        ),
);</code>
Nach dem Login kopieren
Nach dem Login kopieren

试了array_map 没有成功。

回复内容:

<code>$array = array(
    0 => array(
            'univs_id' => 1001,
            'univs_name' => '清华大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    1 => array(
            'univs_id' => 1002,
            'univs_name' => '北京大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    2 => array(
            'univs_id' => 1003,
            'univs_name' => '中国人民大学',
            'province_id' => 110000,
            'province' => '北京',
        ),
);</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样类型的数组,如果不使用foreach进行遍历如何能达到下面的效果

<code>$array = array(
    1001 => array(
            'univs_id' => 1001,
            'univs_name' => '清华大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    1002 => array(
            'univs_id' => 1002,
            'univs_name' => '北京大学',
            'province_id' => 110000,
            'province' => '北京',
        ),

    1003 => array(
            'univs_id' => 1003,
            'univs_name' => '中国人民大学',
            'province_id' => 110000,
            'province' => '北京',
        ),
);</code>
Nach dem Login kopieren
Nach dem Login kopieren

试了array_map 没有成功。

<code>$array = [你的数组]
$newArray = array_reduce($array,function(&$newArray,$v){
    $newArray[$v['univs_id']] = $v;
    return $newArray;
});
</code>
Nach dem Login kopieren

$newArray就是你要的数组

$new_array = array_combine(array_column($array,'univs_id'),$array);

array_column在php5.5以上才能使用
低版本array_column实现

<code>if(!function_exists('array_column')){
 
    function array_column($array,$key){
        return array_map(
            function($element,$key){return $element[$key];},
            $array,
            array_fill(0,count($array),$key)
        );
    }
}</code>
Nach dem Login kopieren

php中不能直接改变数组的键名,需要添加新项然后删掉旧项。

<code>$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);</code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage