манипулирование массивом - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть массив из двух столбцов (array1), для каждой строки этого массива мне нужно сравнить значение во 2-м столбце со значением столбца в каждой строке другого массива (array1), когда они равны, я хочу добавитьзначение другого столбца (от array2) до первого массива.

на английском языке:

if array1[x][1] = array2[y][0]
then array1[x][2] = array2[y][2]

снимки экрана обоих массивов

array1 ( 
    [1] => Array ( 
        [0] => 1 [1] => 2 
    ) 
    [2] => Array ( 
        [0] => 2 [1] => 3 
    ) 
    [3] => Array ( 
        [0] => 3 [1] => 
    ) [7] => Array ( 
        [0] => 7 [1] => 1 
    ) 
    [8] => Array ( 
        [0] => 8 [1] => 1 
    ) 
    [9] => Array (
        [0] => 9 [1] => 10 
    ) 
    [10] => Array (
        [0] => 10 [1] => 2 
    ) 
)


array2 ( 
    [0] => Array ( 
        [0] => 1 
        [1] => 2 
        [2] => 2 
        [3] => Jane 
        [4] => Smith 
        [5] => jsmith@internet.com 
        [6] => jsmith 
        [7] => 12345 
        [8] => 1 
        [9] => no 
    ) 
    [1] => Array ( 
        [0] => 2 
        [1] => 2 
        [2] => 3 
        [3] => James 
        [4] => Beard 
        [5] => jasb@bellsouth.net 
        [6] => jbeard03 
        [7] => keeper 
        [8] => 1 
        [9] => no 
    ) 
    [2] => Array ( 
        [0] => 3 
        [1] => 2 
        [2] => 
        [3] => Peter 
        [4] => Allen 
        [5] => pallen@rfgg.com 
        [6] => pallen 
        [7] => pallen 
        [8] => 1 
        [9] => no 
    ) 
    [3] => Array ( 
        [0] => 7 
        [1] => 2 
        [2] => 1 
        [3] => Joe 
        [4] => Blow 
        [5] => jasb@bellsouth.net 
        [6] => jblow 
        [7] => blow123 
        [8] => 5 
        [9] => yes 
    ) 
    [4] => Array ( 
        [0] => 8 
        [1] => 2 
        [2] => 1 
        [3] => John 
        [4] => Smith 
        [5] => logtest@bellsouth.net 
        [6] => jnsmith 
        [7] => jsmith123 
        [8] => 4 
        [9] => yes 
    ) 
    [5] => Array ( 
        [0] => 9 
        [1] => 2 
        [2] => 10 
        [3] => Frank 
        [4] => Smith 
        [5] => pallen@test.com 
        [6] => fsmith 
        [7] => fsmith123 
        [8] => 4 
        [9] => yes 
    ) 
    [6] => Array ( 
        [0] => 10 
        [1] => 2 
        [2] => 2 
        [3] => Loretta 
        [4] => Beard 
        [5] => lbeard@me.net 
        [6] => lbeard 
        [7] => lbeard123 
        [8] => 1 
        [9] => no 
    ) 
) 

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

Это работает? Я не уверен, что полностью понимаю, что вы ищете.

foreach($array1 as $x => $xarray) {
    foreach($array2 as $y => $yarray) {
        if($xarray[1] == $yarray[0]) {
            $array1[$x][2] = $array[$y][2];
        }
    }
}
0 голосов
/ 21 апреля 2011
foreach ($array1 as &$a1) {
    foreach ($array2 as $a2) {
        if ($a1[1] == $a2[0]) {
            $a1[] = $a2[2];
            continue 2;
        }
    }
}

Кстати, вы должны попытаться использовать явные ключи, которые на самом деле что-то значат, например, $a1['id'] вместо $a1[1]. Вы будете благодарны, когда снова посмотрите код через два месяца.

И потому что я угрожал сделать это:

между тем следует явно указать, что на самом деле значит что-то, например, $ a1 ['id'], вместо $ a1 [1] вы будете благодарны за себя, когда посмотрите на код;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...