首頁 >後端開發 >php教程 >陣列排序 - php用系統函數將一個陣列依另一個陣列的值進行排序

陣列排序 - php用系統函數將一個陣列依另一個陣列的值進行排序

WBOY
WBOY原創
2016-10-10 11:56:201774瀏覽

有以下兩個數組:

<code>array (size=6)
  0 => string 'id' (length=2)
  1 => string 'name' (length=4)
  2 => string 'identityId' (length=10)
  3 => string 'phone' (length=5)
  4 => string 'email' (length=5)
  5 => string 'schoolId' (length=8)
array (size=6)
  'id' => string '唯一标识' (length=12)
  'identityId' => string '身份证' (length=9)
  'phone' => string '手机号' (length=9)
  'email' => string '邮箱' (length=6)
  'name' => string '姓名' (length=6)
  'schoolId' => string '学校' (length=6)</code>

如何讓第二個陣列依照第一個陣列的鍵值排序,即第二個陣列變成id,name,identityId····
使用系統函數,謝謝諸位

回覆內容:

有以下兩個數組:

<code>array (size=6)
  0 => string 'id' (length=2)
  1 => string 'name' (length=4)
  2 => string 'identityId' (length=10)
  3 => string 'phone' (length=5)
  4 => string 'email' (length=5)
  5 => string 'schoolId' (length=8)
array (size=6)
  'id' => string '唯一标识' (length=12)
  'identityId' => string '身份证' (length=9)
  'phone' => string '手机号' (length=9)
  'email' => string '邮箱' (length=6)
  'name' => string '姓名' (length=6)
  'schoolId' => string '学校' (length=6)</code>

如何讓第二個陣列依照第一個陣列的鍵值排序,即第二個陣列變成id,name,identityId····
使用系統函數,謝謝諸位

<code><?php

$a = [
    'id',
    'name',
    'identityId',
    'phone',
    'email',
    'schoolId'
];

$b = [
    'id' => '唯一标识',
    'identityId' => '身份证',
    'phone' => '手机号',
    'email' => '邮箱',
    'name' => '姓名',
    'schoolId' => '学校'
];

var_dump(array_merge(array_flip($a), $b));</code>

使用系統函數 array_muiltsort

<code class="php">$arr1 = array(
    'id',
    'name',
    'identityId',
    'phone',
    'email',
    'schoolId'
);
$arr2 = array(
    'id' => '唯一标识',
    'identityId' => '身份证',
    'phone' => '手机号',
    'email' => '邮箱',
    'name' => '姓名',
    'schoolId' => '学校',
);
array_multisort($arr1,SORT_DESC,$arr2);
print_r($arr2);
// 结果为:
Array
(
    [schoolId] => 学校
    [email] => 邮箱
    [identityId] => 身份证
    [phone] => 手机号
    [id] => 唯一标识
    [name] => 姓名
)
</code>

$a = ['id','name','identityId','phone','email','schoolid'];
$b = ......;
foreach($a as $v) {

<code>$c[$v] = $b[$v];</code>

}
$c即為你想要的陣列;

<code>$c = array();
foreach ($a as $value) $c[$value] = $b[$value];
print_r($c);</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn