Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中使用foreach循环创建多维数组?_Php_Arrays_Multidimensional Array - Fatal编程技术网

如何在php中使用foreach循环创建多维数组?

如何在php中使用foreach循环创建多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,当我采用数组中的值形式时 $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,

当我采用数组中的值形式时

$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动态生成的。 我想得到我在下面提到的成员vise数组

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']
    );
}
应该是这样的:

$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);
$fname=$\u POST['first\u name'];
$lname=$\u POST['last\u name'];
$job=$_POST['job'];
$desc=$_POST['desc'];
$photo=$\u POST['image\u url'];
$memberdata=array();
//我们迭代firstname字段并从其他字段访问相同的索引。$i从0开始递增,直到它遍历所有的名字
对于($i=0;$i$fname[$i],//我们在当前索引处访问firstname
“姓氏”=>lname[$i],
“作业”=>$job[$i],
'desc'=>$desc[$i],
'image_url'=>$photo[$i]
);
}
var_dump($memberdata);

请添加
foreach
循环PHP代码,您是如何尝试解决此问题的,但没有成功?谢谢@Tumtum,但它只显示空数组,没有其值。我已经编辑了我的帖子,也许你可以从中得到一些想法。