PHP拆分;将数组连接成单独的行


PHP Split & join array into separate lines

我有以下数组:

Array ( [0] => Array ( [0] => Bob 
                       [1] => Freddy 
                     ) 
        [1] => Array ( [0] => IT Dev 
                       [1] => Programmer 
                     ) 
        [2] => Array ( [0] => 123 
                       [1] => 23423 
                     ) 
      )

我正在尝试将数组连接在一起,所以它看起来如下所示:

Bob-IT开发人员-123

Freddy-程序员-23423

我一直在摆弄内爆函数,但实际上我不知道如何在PHP 中实现这一点

如有任何帮助,我们将不胜感激。

非常感谢

最大

如果您的数组被称为$myArray,那么:

foreach ($myArray as $row)
{
  $string1 .= $row[0]."-";
  $string2 .= $row[1]."-";
}
echo $string1."<br>";
echo $string2."<br>";

假设这是您的数组:

$array = array(
    array('Bob', 'Freddy'),
    array('IT Dev', 'Programmer'),
    array('123', '23423')
);

你必须循环遍历每个数组,将它们连接成一个句子。

$result = array();
foreach($array as $data){
    foreach($data as $index => $value){
        if(!isset($result[$index]))
            $result[$index] = $value;
        else
            $result[$index] .= " - " . $value;
    }
}

现在,如果您var_dump $result:

array(2) {
    [0]=>
        string(18) "Bob - IT Dev - 123"
    [1]=>
        string(27) "Freddy - Programmer - 23423"
}

如果你想访问一个单独的句子,你可以这样做:

echo $result[0]; // Bob - IT Dev - 123

只需使用array_column并内爆即可获得输出。

阵列:

$arr = array(
    array('Bob', 'Freddy'),
    array('IT Dev', 'Programmer'),
    array('123', '23423')
);

机制:

echo implode(" - ", array_column($arr, 0)); //Bob - IT Dev - 123
echo implode(" - ", array_column($arr, 1)); //Freddy - Programmer - 23423

我有两个坚实的方法。第一种是"可变方法"(... splat operator),第二种是利用array_column()的经典foreach循环。

代码:(演示)

$array=[
    ['Bob','Freddy'],
    ['IT Dev','Programmer'],
    [123,23423]
];
// Use this to see that both methods are flexible and produce the same result,
// so long as all subarrays have equal length.
// If there are differences in length, depending where the hole is, the results
// between the two methods will vary slightly.
// (The 1st method best preserves the intended output structure.)
/*$array=[
    ['Bob','Freddy','Jane'],
    ['IT Dev','Programmer','Slacker'],
    [123,23423,0],
    ['more1','more2','more3']
];*/
// this one requires php5.6 or better
$imploded_columns=array_map(function(){return implode(' - ',func_get_args());},...$array);
var_export($imploded_columns);
echo "'n'n";
unset($imploded_columns);
// or you can go with a sub-php5.6 version:
foreach($array[0] as $k=>$v){
    $imploded_columns[]=implode(' - ',array_column($array,$k));
}
var_export($imploded_columns);

两种方法的输出:

// variadic method
array (
  0 => 'Bob - IT Dev - 123',
  1 => 'Freddy - Programmer - 23423',
)
// foreach method
array (
  0 => 'Bob - IT Dev - 123',
  1 => 'Freddy - Programmer - 23423',
)