簡體   English   中英

如何在PHP中使用foreach循環創建多維數組?

[英]how to create multidimensional array using a foreach loop in php?

當我在數組中采用表單值時

$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$job   = $_POST['job'];
$desc  = $_POST['desc'];
$photo = $_POST['image_url'];

$memberdata = Array(
          'first_name' => $fname,
          'last_name' => $lname,
          'job' => $job,
          'desc' => $desc,
          'image_url' => $photo
          );

並回顯此數組,如下所示打印。 如何修改代碼以實現目標? 還有什么其他方法可以得到我想要的結果? 成員表單是使用jquery動態生成的。 我想獲得下面提到的成員台鉗陣列。

Array
(
    [first_name] => Array
        (
            [0] => Member1
            [1] => Member2
            [2] => Member3
        )

    [last_name] => Array
        (
            [0] => Member1
            [1] => Member2
            [2] => Member3
        )

    [job] => Array
        (
            [0] => President
            [1] => MD
            [2] => CEO
        )

    [desc] => Array
        (
            [0] => President of
            [1] => MD of
            [2] => CEO of
        )

    [image_url] => Array
        (
            [0] => 
            [1] => 
            [2] => 
        )

)

如何從上面的數組制作特定的數組? 如何修改代碼以實現目標? 這就是我要的。

 Array
(
   [0] => Array
   (
      [first_name] => Member1
      [last_name] => Member1
      [job] => President
      [desc] => President of
      [image_url] =>
   )

   [1] => Array
   (
      [first_name] => Member2
      [last_name] => Member2
      [job] => MD
      [desc] => MD of
      [image_url] =>
   )

   [2] => Array
   (
      [first_name] => Member3
      [last_name] => Member3
      [job] => CEO 
      [desc] => CEO of
      [image_url] =>
   )
)

我的猜測是您的foreach循環如下所示:

$result = array();
foreach($members as $member) {
    $result['firstname'][] = $member['firstname'];
    $result['last_name'][] = $member['last_name'];
    //etc
}

它應該是這樣的:

$result = array();
foreach($members as $member) {
    $result[] = array(
        'firstname' => $member['firstname'],
        'last_name' => $member['last_name'],
        'job' => $member['job'],
        'desc' => $member['desc'],
        'image_url' => $member['image_url']
    );
}

根據示例代碼進行更新:

POST字段是數組,因此您必須確保為每個成員發布所有字段,因為for循環基於具有相同數量值的所有字段。

$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$job   = $_POST['job'];
$desc  = $_POST['desc'];
$photo = $_POST['image_url'];

$memberdata = array();

// we iterate the firstname field and access the same indexes from the other fields. The $i starts with 0 and gets incremented until it iterated over all the firstnames
for($i = 0; $i < count($fname); $i++) {
    $memberdata[] = array(
        'first_name' => $fname[$i], // we access the firstname at the current index
        'last_name' => $lname[$i],
        'job' => $job[$i],
        'desc' => $desc[$i],
        'image_url' => $photo[$i]
    );
}

var_dump($memberdata);

暫無
暫無

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

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