2

私は配列を持っています:

$array = array(
   0 => array('first' => 'aaa',
              'second' => 'bbb'),
   1 => array('first' => 'erw',
              'second' => 'wer'),
   2 => array('first' => 'aaawe',
              'second' => '345'),
   3 => array('first' => 'aa345a',
              'second' => 'dfgdfg'),
);

そして、内破で値を取得したいと思います:

$first = implode(';', $array['first']);
$second = implode(';', $array['second']);

しかし、もちろんこれは機能しません。これにはどのように最善の方法がありますか?

4

2 に答える 2

3

PHP 5.5 には関数が存在しますarray_column(): http://php.net/array_column

$first = implode(';', array_column($array, 'first'));
// same for $second

Ps: 下位互換性チェックについては、https://github.com/ramsey/array_column outもご覧ください


要求に応じて、「単純な」もの (PHP 5.3 互換):

$first = array_reduce($array, function ($array, $string) { return ($string !== null?"$string;":"").$array['first']; }, null);
于 2013-10-06T15:29:47.580 に答える
1

あなたはそれなしでそれを行うことができますarray_column();

<?php
 $array = array(
   0 => array('first' => 'aaa',
              'second' => 'bbb'),
   1 => array('first' => 'erw',
              'second' => 'wer'),
   2 => array('first' => 'aaawe',
              'second' => '345'),
   3 => array('first' => 'aa345a',
              'second' => 'dfgdfg'),
);
foreach ($array as $row)
{
  $values[] = $row['first'];
  $val[] = $row['second'];
}
$first= implode(',', $values);
$second= implode(',', $val);
echo $first."<br>";
echo $second;
?>

テストしたところ、出力が得られました

aaa,erw,aaawe,aa345a
bbb,wer,345,dfgdfg
于 2013-10-06T16:09:53.613 に答える