0

私はPHPを独学していますが、配列について次の質問があります。

私は持っている:

   $names = array('John', 'Alice', 'Tom');
    $cities = array('London', 'NY', 'Boston');
    $years = array('1999', '2010', '2012');
    $colors = array('red', 'blue', 'green'); 

これらの要素 (3 つのサブ配列) を持つ新しい配列が必要です。

 John London 1999 red
 Alice NY 2010 blue
 Tom Boston 2012 green 

私がやっている

 $newArray = array($names,$cities, $years,$colors);

しかし、これはすべての名前、都市などをすべて一緒に示しています:(これを達成する方法を教えてください。

どうもありがとう!

4

4 に答える 4

3

このような出力を得るには -

John London 1999 red

Alice NY 2010 blue

Tom Boston 2012 green

あなたは次のことをしなければなりません

$result = array();
foreach($names as $key=>$value){
$result[]='<pre>'.$value.' '.$cities[$key].' '.$years[$key].''.$colors[$key].'</pre>';
}

次に、生成された配列を内破します

$output=implode('',$result);
echo $output;
于 2015-05-26T06:27:09.063 に答える
1

使用foreach():

$newArray = array();

foreach($names as $num => $name){
    $newArray[] = $name." ".$cities[$num]." ".$years[$num]." ".$colors[$num];
}

var_export($newArray);

コードパッドの例

于 2012-09-07T09:34:19.057 に答える
0

3 つのリストを、各値がサブ配列の要素を持つ配列にしたい場合は、次のようにします。

$names = array('John', 'Alice', 'Tom');
$cities = array('London', 'NY', 'Boston');
$years = array('1999', '2010', '2012');
$colors = array('red', 'blue', 'green'); 

$final_array = array();

foreach($names as $count => $name){
    array_push($final_array,array($name,$cities[$count],$years[$count],$colors[$count]));
}

var_export($final_array);

これにより、次の出力が得られます。

array (
  0 => 
  array (
    0 => 'John',
    1 => 'London',
    2 => '1999',
    3 => 'red',
  ),
  1 => 
  array (
    0 => 'Alice',
    1 => 'NY',
    2 => '2010',
    3 => 'blue',
  ),
  2 => 
  array (
    0 => 'Tom',
    1 => 'Boston',
    2 => '2012',
    3 => 'green',
  ),

結果を文字列の配列にしたい場合は、ミハイの答えを使用してください。

于 2012-09-07T09:42:59.407 に答える
0

または、「のために」を使用することができます

$count = count($names);
$new_array = array();
for($i=0;$i < $count; $i++) {
        $new_array[] = array( $names[$i], $cities[$i], $years[$i],$colors[$i]);
}
于 2012-09-07T09:43:05.600 に答える