我有一个数组,它具有我需要的正确值,但它不正常。然后我有另一个具有相同键的数组,它的顺序正确,但值不是我需要的值。
这是我的第一个数组,其值正确但是乱序:
Array
(
[countTotal] => 7268
[zip] =>
[yearName] =>
[countZipRadius] =>
[Acura] => 1334
[Cadillac] => 511
[Ford] => 5423
)
这是我的第二个数组,它具有正确的顺序但错误的值:
Array
(
[countZipRadius] => 0
[zip] => 1
[yearName] => 2
[Acura] => 3
[Cadillac] => 4
[Ford] => 5
[countTotal] => 6
)
我试图找出一种方法来创建一个新数组,其中包含来自数组1的正确值,但这是数组2的顺序。
我已经玩了一段时间,似乎无法得到它。
任何帮助都会很棒。
谢谢!
答案 0 :(得分:3)
$c = array();
foreach (array_keys($b) as $k) {
$c[k] = $a[k];
}
答案 1 :(得分:1)
您可以使用php的array_multisort
函数:
$original = array(
'countTotal' => 7268,
'zip' => '',
'yearName' => '',
'countZipRadius' => '',
'Acura' => 1334,
'Cadillac' => 511,
'Ford' => 5423,
);
$right = array(
'countZipRadius' => 0,
'zip' => 1,
'yearName' => 2,
'Acura' => 3,
'Cadilac' => 4,
'Ford' => 5,
'countTotal' => 6
);
//make sure both arrays are in the same order
ksort($original);
ksort($right);
array_multisort($right, $original);
print_r($original);
当你给它两个具有相同数量元素的数组时,它会根据第一个数组的顺序对两个数组进行排序 - 在这种情况下,$right
中的0,1,2,3等值
答案 2 :(得分:0)
答案 3 :(得分:0)
使用烤饼的方法:
$original = array(
'countTotal' => 7268,
'zip' => '',
'yearName' => '',
'countZipRadius' => '',
'Acura' => 1334,
'Cadillac' => 511,
'Ford' => 5423,
);
$right = array(
'countZipRadius' => 0,
'zip' => 1,
'yearName' => 2,
'Acura' => 3,
'Cadilac' => 4,
'Ford' => 5,
'countTotal' => 6
);
foreach ($right as $key => $value) {
$new[$key] = $original[$key];
}
print_r($new);
答案 4 :(得分:0)
$array = array('a' => 100, 'b' => '5');
$newArray = array_combine(array_keys($array), range(0, count($array) - 1));
var_dump($newArray);