打印数组的每两个值,后跟一个空行

时间:2014-10-05 00:42:26

标签: php arrays

我有这个数组:

myArray("key1"=>"value1", "key2"=>"value2", "key3"=>"value3", "key4"=>"value4", "key5"=>"value5", "key6"=>"value6");

我需要使用空行显示此数组的值,每个值为2。我尝试过以下方法:

function array_implode_with_value($array){
  $return = '';
  foreach ($array as $value){
    $return .= $value . PHP_EOL . PHP_EOL;
  }
  return $return;
}

$description = array_implode_with_value($myArray);

我的功能只是在每个值后添加2个换行符:

value1

value2

value3

value4

value5

value6

我想要的是:

value1
value2

value3
value4

value5
value6

3 个答案:

答案 0 :(得分:2)

但是,首先,请修复你的数组,因为它不正确 - 它有重复的键/索引。

$my = array(
      "type1"=>"car",    "brand1"=>"Citroen",
      "type2"=>"tablet", "brand2"=>"Asus",
      "type3"=>"cheese", "brand3"=>"Gouda"
);   

$my = array_chunk($my, 2);
foreach($my as $m)
  echo implode(PHP_EOL, $m) . PHP_EOL . PHP_EOL;

正确的(或数据的最佳表示)将如下所示

$my = array(
     array("type" => "car", "brand" => "Citroen"),
     array("type" => "tablet", "brand" => "Asus"),
     array("type" => "cheese", "brand" => "Gouda")
);

foreach($my as $m)
  echo $m['type'] . PHP_EOL . $m['brand'] . PHP_EOL . PHP_EOL;

答案 1 :(得分:2)

对于记录,这是我编辑的divyenduz函数版本:

function array_implode_with_value($array){
  $return = '';
  $num=0;
  foreach ($array as $value){
    $num+=1;
    $return .= $value . PHP_EOL;
    if($num%2==0)
      $return .= PHP_EOL;
    }
  return $return;
}

非常感谢所有人,你们非常乐于助人!

答案 2 :(得分:1)

只要你的计数器是偶数,你就可以维护一个变量(Counter)并将PHP_EOL添加到$ return变量。

function array_implode_with_value($array){
  $return = '';
  $num=0;
  foreach ($array as $value){
    $num+=1;
    $return .= $value;
    if($num%2==0)
        $return .= PHP_EOL . PHP_EOL;
  }
  return $return;
}

我希望我能解决这个问题。