array_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_valuesBir dizinin tüm değerlerini döndürür

Açıklama

array_values(array $dizi): array

array_values() işlevi dizi dizisindeki tüm değerleri sayısal olarak indisleyerek döndürür.

Bağımsız Değişkenler

dizi

İşlenecek dizi.

Dönen Değerler

Değerleri indislenmiş bir dizi döndürür.

Örnekler

Örnek 1 - array_values() örneği

<?php
$dizi
= array("beden" => "XL", "renk" => "sarı");
print_r(array_values($dizi));
?>

Yukarıdaki örneğin çıktısı:

Array
(
    [0] => XL
    [1] => gold
)

Ayrıca Bakınız

  • array_keys() - Bir dizideki tüm anahtarları veya bir anahtar altkümesini döndürür
  • array_combine() - Anahtarlar için bir dizi, değerler için ise başka bir dizi kullanarak bir ilişkisel dizi oluşturur

add a note

User Contributed Notes 6 notes

up
118
biziclop at vipmail dot hu
11 years ago
Remember, array_values() will ignore your beautiful numeric indexes, it will renumber them according tho the 'foreach' ordering:<?php$a = array( 3 => 11, 1 => 22, 2 => 33,);$a[0] = 44;print_r( array_values( $a ));==>Array(  [0] => 11  [1] => 22  [2] => 33  [3] => 44)?>
up
15
nopy at users dot sourceforge dot net
21 years ago
Just a warning that re-indexing an array by array_values() may cause you to reach the memory limit unexpectly.

For example, if your PHP momory_limits is 8MB,
 and says there's a BIG array $bigArray which allocate 5MB of memory.

Doing this will cause PHP exceeds the momory limits:

<?php
  $bigArray = array_values( $bigArray );
?>

It's because array_values() does not re-index $bigArray directly,
it just re-index it into another array, and assign to itself later.
up
16
abimaelrc
14 years ago
This is another way to get value from a multidimensional array, but for versions of php >= 5.3.x<?php/** * Get all values from specific key in a multidimensional array * * @param $key string * @param $arr array * @return null|string|array */function array_value_recursive($key, array $arr){    $val = array();    array_walk_recursive($arr, function($v, $k) use($key, &$val){        if($k == $key) array_push($val, $v);    });    return count($val) > 1 ? $val : array_pop($val);}$arr = array(    'foo' => 'foo',    'bar' => array(        'baz' => 'baz',        'candy' => 'candy',        'vegetable' => array(            'carrot' => 'carrot',        )    ),    'vegetable' => array(        'carrot' => 'carrot2',    ),    'fruits' => 'fruits',);var_dump(array_value_recursive('carrot', $arr)); // array(2) { [0]=> string(6) "carrot" [1]=> string(7) "carrot2" }var_dump(array_value_recursive('apple', $arr)); // nullvar_dump(array_value_recursive('baz', $arr)); // string(3) "baz"var_dump(array_value_recursive('candy', $arr)); // string(5) "candy"var_dump(array_value_recursive('pear', $arr)); // null?>
up
3
bluej100 at gmail dot com
17 years ago
Most of the array_flatten functions don't allow preservation of keys. Mine allows preserve, don't preserve, and preserve only strings (default).<?// recursively reduces deep arrays to single-dimensional arrays// $preserve_keys: (0=>never, 1=>strings, 2=>always)function array_flatten($array, $preserve_keys = 1, &$newArray = Array()) {  foreach ($array as $key => $child) {    if (is_array($child)) {      $newArray =& array_flatten($child, $preserve_keys, $newArray);    } elseif ($preserve_keys + is_string($key) > 1) {      $newArray[$key] = $child;    } else {      $newArray[] = $child;    }  }  return $newArray;}// Tests$array = Array(  'A' => Array(    1 => 'foo',    2 => Array(      'a' => 'bar'    )  ),  'B' => 'baz');echo 'var_dump($array);'."\n";var_dump($array);echo 'var_dump(array_flatten($array, 0));'."\n";var_dump(array_flatten($array, 0));echo 'var_dump(array_flatten($array, 1));'."\n";var_dump(array_flatten($array, 1));echo 'var_dump(array_flatten($array, 2));'."\n";var_dump(array_flatten($array, 2));?>
up
0
chrysb at gmail dot com
16 years ago
If you are looking for a way to count the total number of times a specific value appears in array, use this function:

<?php
function array_value_count ($match, $array)
{
    $count = 0;
    
    foreach ($array as $key => $value)
    {
        if ($value == $match)
        {
            $count++;
        }
    }
    
    return $count;
}
?>

This should really be a native function of PHP.
up
-2
Anonymous
21 years ago
<?php /**   flatten an arbitrarily deep multidimensional array    into a list of its scalar values   (may be inefficient for large structures)   (will infinite recurse on self-referential structures)   (could be extended to handle objects)*/function array_values_recursive($ary){   $lst = array();   foreach( array_keys($ary) as $k ){      $v = $ary[$k];      if (is_scalar($v)) {         $lst[] = $v;      } elseif (is_array($v)) {         $lst = array_merge( $lst,            array_values_recursive($v)         );      }   }   return $lst;}?>code till dawn!  -mark meves!
To Top