繁体   English   中英

Foreach循环PHP一旦停止

[英]Foreach Loop PHP Once Stop

目前,我有一个脚本,该脚本将从数组中收集数据并将其推送到API,但是由于某种原因,我无法让它一次添加多个。

$ data数组

array
(
    [0] => Array
        (
            [_id] => 0
            [_source] => App
            [_source_id] => 790006230e91dd6279a42a814bf5965a.jpg
            [_client_ids] => 2
            [_parent_ids] => 0
            [_image] => blank.jpg
            [_title] => test1
            [_body] => test1
        )

    [1] => Array
        (
            [_id] => 1
            [_source] => App
            [_source_id] => b3a5a6df0cf1dfc30882b20f8a493092.jpg
            [_client_ids] => 2
            [_parent_ids] => 0
            [_image] => blank.jpg
            [_title] => test2
            [_body] => test2
        )

)

PHP

public function save($data) {

        $submissionManager = new SubmissionManager($this->container);

        $returndata = array();

        foreach( $data as $entry )
        {

           $this->mustBeGranted('PERM_SUBMISSION_CREATE');

           $saved = array();

           $client_ids = explode(',', $entry['_client_ids']);
           $parent_ids = explode(',', $entry['_parent_ids']);
           $length = count($client_ids);

           for($i = 0; $i < $length; $i++){
                   $input = array_merge($entry, array(
                        'client_id' => isset($client_ids[$i]) ? $client_ids[$i] : 0,
                         'parent_id' => isset($parent_ids[$i]) ? $parent_ids[$i] : 0,
                        '_source_id' => $entry['_source_id']
                    ));
                    $saved[] = $submissionManager->createSubmission($input);
           }
           $returndata[ $entry['_id']] = $saved;
        }

    }

基本上,即使我添加了for-each,它也只会将第一个数组推送到API,而不会将第二个数组推送到API。

从foreach循环中删除$ saved = array()并将其放在循环之前。 您每次循环开始时都分配空数组

我想说的是$entry['_id']值没有改变,因此您正在重新分配给相同的数组键。

尝试简单地使用:

$returndata[] = $saved;

对不起,已解决的问题与我的createSubmission类有关……我的错

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM