-3

PHP には関数array_valuesがあり、

$array2 = array_values($array1);

$array2は と同じ値を持ち$array1ますが、キーは 0~ からsizeof($array1) - 1です。古いキーから新しいキーへのマッピングを取得することは可能ですか?
編集。例で説明します:

$array1 = array( 'a' => 'val1', 'b' => 'val1');
$array2 = array_values( $array1 );

したがって、array2 には次の値があります

$array2[0] = 'val1'
$array2[1] = 'val2'

次のような array3 を取得する方法:

$array3['a'] = 0
$array3['b'] = 1
4

5 に答える 5

3

はい、次のように簡単です

$array2 = $array1;

この場合、元の配列にあるように、値とキーの両方を取得します。

于 2012-06-06T23:09:37.573 に答える
1
$keyMapping = array_combine(array_keys($array1), array_keys($array2));

これは のキーであり、それらをlike so$array1のキーにマッピングします$array2

<?php
$array1 = array(
    'a' => '1',
    'b' => '2',
);

$array2 = array_values($array1);

print_r(array_combine(array_keys($array1), array_keys($array2)));

Array
(
    [a] => 0
    [b] => 1
)
于 2012-06-06T23:09:11.290 に答える
0

array1 の同じ値を保持したいが、キーをインデックス番号に変更したい場合は、これを試してください:

$array2 = array();
foreach ($array1 as $key => $value){
$array2[] = $value;
// or array_push($array2, $value);
}
var_dump($array2);
于 2012-06-06T23:30:33.167 に答える
0

以下を使用できます。

$array3 = array_keys($array1);

現在$array3[$n]$array2[$n]for anyの値のキーです0 <= $n < count($array1)。これを使用して、どのキーがどの場所にあったかを判断できます。

于 2012-06-06T23:09:01.700 に答える