我正在自学PHP,我对数组有以下问题:
我有:
$names = array('John', 'Alice', 'Tom');
$cities = array('London', 'NY', 'Boston');
$years = array('1999', '2010', '2012');
$colors = array('red', 'blue', 'green');
我想要一个包含这些元素的新数组(三个子数组):
John London 1999 red
Alice NY 2010 blue
Tom Boston 2012 green
我在做
$newArray = array($names,$cities, $years,$colors);
但这显示了所有的名字,城市等等:(请告诉我如何实现这一目标。
非常感谢!
答案 0 :(得分: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;
答案 1 :(得分:1)
使用foreach()
:
$newArray = array();
foreach($names as $num => $name){
$newArray[] = $name." ".$cities[$num]." ".$years[$num]." ".$colors[$num];
}
var_export($newArray);
答案 2 :(得分:0)
如果您希望三个列表是数组,每个值都是子数组中的元素,请执行以下操作:
$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',
),
如果你想让结果成为一个字符串数组,请使用Mihai的答案。
答案 3 :(得分:0)
或者您可以使用“for”
$count = count($names);
$new_array = array();
for($i=0;$i < $count; $i++) {
$new_array[] = array( $names[$i], $cities[$i], $years[$i],$colors[$i]);
}