Mick
Mick

Reputation: 2898

get values from multidimensional array

I have a script that creates an array in the following format

  $named_array["vehicles"][0]['vehicle'] = "i100-1 "  ;
  $named_array["vehicles"][1]['vehicle'] = "i100-2 "  ;
  $named_array["vehicles"][2]['vehicle'] = "i100-46 "  ;

What I want to do later in the script is get the index value[0-1-2 etc] from $named_array but I only have the value ( i100-1 etc) as a query option , This is so I can alter it later. What I want to achieve is something like , what is the index value of $named_array where value is i100-2

this is output to json at the end .

I hope this makes sense ! any help please ?

Upvotes: 0

Views: 110

Answers (2)

ulentini
ulentini

Reputation: 2412

Try something like this (maybe create a function, if you need to do it more than once)

$needle = 'i100-1';
$vIndex = -1;
foreach ($named_array["vehicles"] as $index => $data) {
    if($data['vehicle'] == $needle) {
        $vIndex = $index;
        break;
    }
}

Upvotes: 1

galchen
galchen

Reputation: 5290

function complex_index_of($named_array, $val){
    for($i=0, $n=count($named_array['vehicles']); $i<$n; $i++){
        if ($named_array['vehicles'][$i]['vehicle'] == $val)
            return $i;
    }
    return -1;
}


echo complex_index_of($named_array, 'i100-2 ');
// output: 1

Upvotes: 2

Related Questions