2016-12-16 28 views
1

1と同じ値でmultidemsional配列を交差:PHP - 私はこのような配列1持って

Array 
(
[0] => Array 
    (
     [0] => test 
     [1] => 123 
     [2] => somenumber 
    ) 

[1] => Array 
    (
     [0] => testx 
     [1] => 456 
     [1] => othernumber 
    ) 

) 

:私はこのような出力を必要とする

Array 
(
[0] => Array 
    (
     [0] => test 
     [1] => somenumber 
    ) 

[1] => Array 
    (
     [0] => title 
     [1] => sometitle 
    ) 
[2] => Array 
    (
     [0] => testx 
     [1] => othernumber 
    ) 

) 

:このような

Array 
(
[0] => Array 
    (
     [0] => test 
     [1] => 123 
    ) 

[1] => Array 
    (
     [0] => testx 
     [1] => 456 
    ) 

) 

と配列2をだから私は各配列の[0]キーと値を比較する必要があります。私はarray_intersectとarray_diffの組み合わせを試しましたが、動かすことができません。誰かが何らかの方向で私を指してください、これは適切な機能/方法は何ですか?

答えて

1

あなたはいくつかの命令でそれを行うことができます:)

<?php 

$array1[] = ['test', '123']; 
$array1[] = ['testx', '456']; 

$array2[] = ['test', 'a']; 
$array2[] = ['testx', 'b']; 
$array2[] = ['other', 'c']; 

$indexColumns = array_column($array1, 0); 
// We extact an array of key/values for column 0 
// = [0 => test, 1 => testx] 

foreach($array2 as $key => $value) { 
    // If we can find the value of the first column on the indexColumn 
    if(($foundKey = array_search($value[0], $indexColumns)) !== false) { 
    unset($value[0]); 
    $array1[$foundKey] = array_merge($array1[$foundKey], $value); 
    } 
} 

出力:

array (size=2) 
    0 => 
    array (size=3) 
     0 => string 'test' (length=4) 
     1 => string '123' (length=3) 
     2 => string 'a' (length=1) 
    1 => 
    array (size=3) 
     0 => string 'testx' (length=5) 
     1 => string '456' (length=3) 
     2 => string 'b' (length=1) 
+0

それが働いています。ありがとうございました! – codexy

関連する問題