簡體   English   中英

打印數組的每2個值,后跟一個空行

[英]Print each 2 values of an array followed by an empty line

例如,我有這個數組:

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

但是,首先,請修復您的數組,因為它不正確-它具有重復的鍵/索引。

$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;

作為記錄,這是我編輯的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;
}

非常感謝,您的幫助很大!

您可以維護一個變量(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;
}

我希望我能解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM