for循环中的PHP循环

我想venue_与venueName. 但似乎它只显示最后一个venue_结果。知道我的代码有什么问题吗?


$venueLength = 6;


for ($i = 0; $i < $venueLength; $i++) {

  $linkageArray = array();


  $mainArray = array ("venueName" => $venueArray[$i]['venueName']);


  for ($j = 0; $j < $venueLength; $j++) {

    $secondArray = array ( "venue_".$j => (in_array($venueArray[$j]['venueID'], $linkageArray) ? 'X' : ''));

  }


  $res[] = array_merge($mainArray, $secondArray); 

}   

header("Content-type: application/json");

$result = json_encode($res);

echo $result;

结果


[

  {

    venueName: "Data A",

    venue_5: ""

  },

  {

    venueName: "Data A3",

    venue_5: ""

  },

  {

  ........

]

我想要的结果


[

  {

    venueName: "Data A",

    venue_0: "",

    venue_1: "",

    venue_2: "",

    venue_3: "",

    venue_4: "",

    venue_5: ""

  },

  {

    venueName: "Data A3",

    venue_0: "",

    venue_1: "",

    venue_2: "",

    venue_3: "",

    venue_4: "",

    venue_5: ""

  },

  ........

]


红颜莎娜
浏览 83回答 1
1回答

aluckdog

您只需继续重置$secondArray值$secondArray = array ( "venue_".$j => (in_array($venueArray[$j]['venueID'], $linkageArray) ? 'X' : ''));而是在循环外重置数组并为每个循环添加一个新值......&nbsp; $secondArray = [];&nbsp; for ($j = 0; $j < $venueLength; $j++) {&nbsp; &nbsp; &nbsp; $secondArray[ "venue_".$j ] = (in_array($venueArray[$j]['venueID'], $linkageArray) ? 'X' : ''));&nbsp; }或者直接添加到$mainArray&nbsp; for ($j = 0; $j < $venueLength; $j++) {&nbsp; &nbsp; &nbsp; $mainArray[ "venue_".$j ] = (in_array($venueArray[$j]['venueID'], $linkageArray) ? 'X' : ''));&nbsp; }你不需要array_merge().
打开App,查看更多内容
随时随地看视频慕课网APP