PHP - Get array value with a numeric index PHP - Get array value with a numeric index arrays arrays

PHP - Get array value with a numeric index


$array = array('foo' => 'bar', 33 => 'bin', 'lorem' => 'ipsum');$array = array_values($array);echo $array[0]; //barecho $array[1]; //binecho $array[2]; //ipsum


array_values() will do pretty much what you want:

$numeric_indexed_array = array_values($your_array);// $numeric_indexed_array = array('bar', 'bin', 'ipsum');print($numeric_indexed_array[0]); // bar


I am proposing my idea about it against any disadvantages array_values( ) function, because I think that is not a direct get function.In this way it have to create a copy of the values numerically indexed array and then access. If PHP does not hide a method that automatically translates an integer in the position of the desired element, maybe a slightly better solution might consist of a function that runs the array with a counter until it leads to the desired position, then return the element reached.

So the work would be optimized for very large array of sizes, since the algorithm would be best performing indices for small, stopping immediately. In the solution highlighted of array_values( ), however, it has to do with a cycle flowing through the whole array, even if, for e.g., I have to access $ array [1].

function array_get_by_index($index, $array) {    $i=0;    foreach ($array as $value) {        if($i==$index) {            return $value;        }        $i++;    }    // may be $index exceedes size of $array. In this case NULL is returned.    return NULL;}