簡體   English   中英

如何從數組中獲取非空數組

[英]How to fetch non-empty Array from an Array

數組包含一些非空數組。 我需要獲取相應的非空數組並打印數據。 例如:數組2的變量為importTroubles-> troubleMessage我該如何打印?

Array
(
 [0] => stdClass Object
    (
    )

[1] => stdClass Object
    (
    )

[2] => stdClass Object
    (
        [return] => stdClass Object
            (
                [failureMessage] => 
                [importTroubles] => stdClass Object
                    (
                        [kind] => ParseError
                        [rowNumber] => 1
                        [troubleMessage] => Field "number1" has invalid value: "+16046799329". Invalid phone number //need to print this..
                    )

                [keyFields] => number1
                [uploadDuplicatesCount] => 0
                [uploadErrorsCount] => 1
                [warningsCount] => stdClass Object
                    (
                    )

                [callNowQueued] => 0
                [crmRecordsInserted] => 0
                [crmRecordsUpdated] => 2
                [listName] => new camp from CRM1-TargetList-CRM
                [listRecordsDeleted] => 0
                [listRecordsInserted] => 2
            )

    )

[3] => stdClass Object
    (
    )

[4] => stdClass Object
    (
    )

我正在嘗試使用這種方法:

foreach($result as $object) {
foreach ($object as $items) {

    if($items !== '')
    {
        foreach ($items as $item) {
            echo "ERROR".$item->troubleMessage;
        }
    }

}
}

感謝您的努力

利用php函數empty()

更改您的if條件,如以下代碼所示:

foreach($result as $object) {
 foreach ($object as $items) {
    if( !empty($items) )
    {
        foreach ($items as $item) {
          if( isset($item->troubleMessage) )
          {
            echo "ERROR".$item->troubleMessage;
          }
        }
    }
 }
}

現在,僅當$items具有值時,它才會回顯。

將您的if($items !== '')更改為if(!empty($items))if($items)if($items[0])希望對您有所幫助

如果只需要查找嵌套在其中的單個特定項目,則不必迭代每個對象。 您可以直接直接引用該項目。

foreach ($your_array as $object) {
    if (isset($object->return->importTroubles->troubleMessage)) {
        echo $object->return->importTroubles->troubleMessage;
    }
}

如果檢查是否設置了特定的嵌套對象變量,它將忽略任何空對象。

您可以使用Collection

use Illuminate\Support\Collection;

$collection = new Collection($result);

$items = $collection->filter(function($object) {

    return isset($object->return->importTroubles->troubleMessage);

})->map(function($object) {

    return $object->return->importTroubles->troubleMessage;

});

暫無
暫無

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

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