0

私は今、何時間もこれを手に入れようとしています。2 つの多次元配列があります。

$newData (
[0] => Array(
    [id] => 1
    [name] => John
    [sex] => male
)
[1] => Array(
    [id] => 2
    [name] => Kenny
    [sex] => male
)
[2] => Array(
    [id] => 3
    [name] => Sarah
    [sex] => female
)
[3] => Array(
    [id] => 4
    [name] => George
    [sex] => male
)
)

$oldData (
[0] => Array(
    [id] => 3
    [name] => Sarah
    [sex] => female
)
[1] => Array(
    [id] => 4
    [name] => George
    [sex] => male
)
[2] => Array(
    [id] => 5
    [name] => Peter
    [sex] => male
)
[3] => Array(
    [id] => 6
    [name] => Lexi
    [sex] => female
)
)

name in$oldDataが一致する場合は$newData、ループをさらに使用せずにその配列の ID を取得する必要があります

4

3 に答える 3

0

2 つのループで、配列キーを取得できます。

$oldDataCount = count($oldData);

$result = array();

for($i = 0; $i < count($newData); $i++)     
    for($j =0; $j < $oldDataCount; $j++) 
        if ($oldData[$j]['name'] == $newData[$i]['name']) 
            $result[$newData[$i]['name']] = $j;


print_r($result);

これで、配列は結果を保持しますArray ( [Sarah] => 0 [George] => 1 )

于 2013-07-25T13:40:26.877 に答える