Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP输出多维数组_Php_Arrays_Multidimensional Array - Fatal编程技术网

PHP输出多维数组

PHP输出多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我已经在这个问题上纠缠了一段时间了。我有一个多维数组,我想以某种方式输出它。以下是阵列: array:3 [ "First Name" => array:3 [ 0 => "BILLY" 1 => "SALLY" 2 => "TYLER" ] "Last Name" => array:3 [ 0 => "RAY" 1 => "SUE" 2 => "TERRIER"

我已经在这个问题上纠缠了一段时间了。我有一个多维数组,我想以某种方式输出它。以下是阵列:

array:3 [ "First Name" => array:3 [ 0 => "BILLY" 1 => "SALLY" 2 => "TYLER" ] "Last Name" => array:3 [ 0 => "RAY" 1 => "SUE" 2 => "TERRIER" ] "HOBBY" => array:3 [ 0 => "PIANO" 1 => "SKATING" 2 => "BASKETBALL" ] ] 阵列:3[ “First Name”=>数组:3[ 0=>“比利” 1=>“莎莉” 2=>“泰勒” ] “姓氏”=>数组:3[ 0=>“光线” 1=>“苏” 2=>“梗” ] “爱好”=>数组:3[ 0=>“钢琴” 1=>“滑冰” 2=>“篮球” ] ] 我希望最终输出如下:

BILLY|RAY|PIANO| SALLY|SUE|SKATING| TYLER|TERRIER|BASKETBALL| 比利|雷|钢琴| 萨莉|苏|溜冰| 泰勒|梗|篮球| 不幸的是,对于现有代码,我有:

$output = ''; foreach($tempArray as $key => $value){ $output .= $value[array_search($key,$tempArray)].$delimiter; } $output=''; foreach($tempArray作为$key=>$value){ $output.=$value[数组搜索($key,$tempArray)]。$delimiter; } 它只输出每个数组的第一个索引,如下所示:

BILLY|RAY|PIANO| 比利|雷|钢琴| 所以我的问题是,我如何得到剩下的两个值?我是否应该创建一些排序或数组和计数器,并以这种方式存储每个输出:
$newArray[$counter]=$output

将从二维数组中获取一列。然后把它们都塞在一起

$array = [
    "First Name" => ["BILLY", "SALLY", "TYLER"],
    "Last Name" => ["RAY", "SUE", "TERRIER"],
    "HOBBY" => ["PIANO", "SKATING", "BASKETBALL"],
];

$result = implode("|", array_column($array, 0)) . "\n";
$result .= implode("|", array_column($array, 1)) . "\n";
$result .= implode("|", array_column($array, 2));
echo $result;
正如注释中指出的,您可能并不总是知道子数组的长度。这意味着将其包装成一个循环:

$iterations = count(reset($array));
$result = "";
for ($i = 0; $i <= $iterations; $i++) {
    $result .= implode("|", array_column($array, $i)) . "\n";
}
$iterations=count(重置($array));
$result=“”;

对于($i=0;$i如果所有三个子数组的大小始终相同,则可以使用for循环:
$array = [
    "First Name" => ["BILLY", "SALLY", "TYLER"],
    "Last Name" => ["RAY", "SUE", "TERRIER"],
    "HOBBY" => ["PIANO", "SKATING", "BASKETBALL"],
];

$result = '';
$size = count($array["First Name"]);
for($i = 0; $i < $size; $i++){
   $result.= "{$array['First Name'][$i]}|{$array['Last Name'][$i]}|{$array['HOBBY'][$i]}\r\n";
}
echo $result;
$array=[
“名字”=>[“比利”、“莎莉”、“泰勒”],
“姓氏”=>[“雷”、“苏”、“梗”],
“爱好”=>[“钢琴”、“滑冰”、“篮球”],
];
$result='';
$size=count($array[“First Name”]);
对于($i=0;$i<$size;$i++){
$result.=“{$array['First Name'][$i]}{$array['Last Name'][$i]}}{$array['HOBBY'][$i]}\r\n”;
}
回声$结果;

太棒了!谢谢!