1

PHP配列に関して質問があります。私がやりたいのは、連想配列に値を入れることです。

//before
$a = array(
       array(
         'name' => 'test1',
         'email' => 'test@test.com',
         'desc' => 'Who know1',
         'button_link' => 'yest2'
        ),
       array(
         'name' => 'test2',
         'email' => 'test2@test.com',
         'desc' => 'Who know2',
         'button_link' => 'yest2'
    ) 
);

$b = array(
      array(
        'item1' => 'value1',
        'item2' => 'value2'
       ),
      array(
        'item1' => 'value3',
        'item2' => 'value4'
    )
 );

$a['desc'], に値$b['item1']を入れたいです。$b['item2']以下のように...

//after
$after_combile = array(
   array(
     'name' => 'test1',
     'email' => 'test@test.com',
     'desc' => 'Who know1 $b["item1"] $b["item2"]',
     'button_link' => 'yest2'
    ),
   array(
     'name' => 'test2',
     'email' => 'test2@test.com',
     'desc' => 'Who know2 $b["item1"] $b["item2"]',
     'button_link' => 'yest2'
   ) 
);

私は多くの方法を試しarray_walkました..

正確に出力したいのは以下です

*出力

array (size=2)
  0 => 
    array 
        'name' => 'test1',
        'email' => 'test@test.com',
        'desc' => 'Who know1 value1' value2',
        'button_link' => 'yest2'
  1 => 
    array 
     '  name' => 'test2',
        'email' => 'test2@test.com',
        'desc' => 'Who know2 value3 value1',
        'button_link' => 'yest2'

申し訳ありませんが、私の質問は不明確でした。

4

5 に答える 5

1
$a = array(
    array(
        'name' => 'test1',
        'email' => 'test@test.com',
        'desc' => 'Who know1',
        'button_link' => 'yest2'
    ),
    array(
        'name' => 'test2',
        'email' => 'test2@test.com',
        'desc' => 'Who know2',
        'button_link' => 'yest2'
    )
);

$b = array(
    array(
        'item1' => 'value1',
        'item2' => 'value2'
    ),
    array(
        'item1' => 'value3',
        'item2' => 'value4'
    )
);

$after_combile = array();

foreach($a as $k => $array) {
    $array['desc'] .= implode(' ', $b[$k]);
    $after_combile[] = $array;
}
于 2013-10-27T12:34:31.020 に答える
1
$result = array_map(function($a,$b){
   $a['desc'] .= ' '.implode(', ',$b);
   return $a;
},$a,$b);
于 2013-10-27T12:50:34.783 に答える
0

同等のキーを使用していると仮定します:

for($i=0;$i<count($a);$i++) {
    $a[$i]['desc'] = $a[$i]['desc'].$b[$i]['item1'].$b[$i]['item2'];
}
于 2013-10-27T12:33:34.243 に答える
0

使用する:

$after_combile = array();

foreach($a as $key=>$array) {
    $array["desc"] .= " ".implode(" ",$b[$key]); 
    $after_combile[] = $array;
}

print_r($after_combile);
于 2013-10-27T12:34:02.197 に答える
0

を使用array_walkすると、ダーティでないだけでなく、パフォーマンスが向上します。

<?php
$a = array(
        array(
            'name' => 'test1',
            'email' => 'test@test.com',
            'desc' => 'Who know1',
            'button_link' => 'yest2'
        ),
        array(
            'name' => 'test2',
            'email' => 'test2@test.com',
            'desc' => 'Who know2',
            'button_link' => 'yest2'
        ) 
);
$b = array(
        array(
            'item1' => 'value1',
            'item2' => 'value2'
        ),
        array(
            'item1' => 'value3',
            'item2' => 'value4'
        )
);
array_walk($a, function(&$arr, $key){
    global $b;
    $arr['desc'] .= " ".implode(" ", $b[$key]);
});
?>
于 2013-10-27T13:06:34.240 に答える