簡體   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