1

必要な正しい値を持つ配列が1つありますが、順序が正しくありません。次に、同じキーを持つ別の配列があり、それは正しい順序ですが、値は必要なものではありません。

これが正しい値を持つ私の最初の配列ですが、順序が狂っています:

Array
(
    [countTotal] => 7268
    [zip] => 
    [yearName] => 
    [countZipRadius] => 
    [Acura] => 1334
    [Cadillac] => 511
    [Ford] => 5423
)

これが私の2番目の配列で、順序は正しいが値が間違っています。

Array
(
    [countZipRadius] => 0
    [zip] => 1
    [yearName] => 2
    [Acura] => 3
    [Cadillac] => 4
    [Ford] => 5
    [countTotal] => 6
)

配列1から正しい値を使用して新しい配列を作成する方法を見つけようとしていますが、それは配列2の順序です。

私はしばらくそれで遊んでいて、それを得ることができないようです。

どんな助けでも素晴らしいでしょう。

ありがとう!

4

5 に答える 5

3
$c = array();
foreach (array_keys($b) as $k) {
    $c[k] = $a[k];
}
于 2013-01-25T03:07:09.397 に答える
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);

同じ数の要素を持つ2つの配列を指定すると、最初の配列の順序に基づいて両方の配列が並べ替えられます。この場合は、0、1、2、3などの値です。$right

于 2013-01-25T03:24:58.700 に答える
0
  1. 新しいアレイを作成する(アレイC)
  2. FORループを使用して配列Bを通過します
  3. 配列Bの値ごとに、配列Aから同じキーで値を取得し、配列Cにそれらの値を配列Cに追加するように設定します。これにより、Cで正しい順序になります。
于 2013-01-25T03:09:43.297 に答える
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);
于 2013-01-25T03:15:40.067 に答える
0
$array = array('a' => 100, 'b' => '5');

$newArray = array_combine(array_keys($array), range(0, count($array) - 1));

var_dump($newArray);
于 2013-01-25T03:17:36.827 に答える