Skip to content
Advertisement

How to Get Data from this PHP Array? [closed]

Array ( [type] => 101 [width] => 540 [height] => 960 [url] => https://a.com)

Array ( [type] => 102 [width] => 340 [height] => 604  [url] => https://b.com)

Array ( [type] => 103 [width] => 240 [height] => 430  [url] => https://c.com)

Array ( [type] => 104 [width] => 240 [height] => 420  [url] => https://d.com)

How to get data from this array of only [type] => 102?

Advertisement

Answer

Simple and easy-to-understand solution could be as next.

The main idea – find index of required type and then retrieve data from this index.

Once you’ve find your type you will catch the index and break the loop:

$indd = '';                     // possible array index with required type value
$type = 102;                    // type value
foreach($ar as $ind=>$arr){
    if ($arr['type'] == $type) {
        $indd = $ind;
        break;
    }
}

With catched index you can easy get rest of data:

if($indd){
    echo $ar[$indd]['width'].PHP_EOL;
    echo $ar[$indd]['height'].PHP_EOL;
    echo $ar[$indd]['url'].PHP_EOL.PHP_EOL; 
}

Outputs:

340
604
https://b.com

All in one function could be present like:

function arrayByType($arra, $type){

    $indd = '';
    foreach($arra as $ind=>$arr){
        if ($arr['type'] == $type) {
            $indd = $ind;
            break;
        }
    }    

    if($indd){
        return $arra[$indd]; 
    }
}

Outputs:

Array
(
    [type] => 102
    [width] => 340
    [height] => 604
    [url] => https://b.com
)

Demo

NOTE: This solution works properly in case of unique type value. Multiple appearances don’t supports.

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement