array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.array-column.php', 1 => 'array_column', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Dizi İşlevleri', ), 'prev' => array ( 0 => 'function.array-chunk.php', 1 => 'array_chunk', ), 'next' => array ( 0 => 'function.array-combine.php', 1 => 'array_combine', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/array/functions/array-column.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
array_column — Dizinin bir sütunundaki değerlerle döner
array_column() işlevi dizi
nin
sütun_anh
ile belirtilen sütunundaki değerleri içeren
bir dizi ile döner. İsteğe bağlı olarak, döndürülen dizideki değerleri
indislemek için bir indis
sağlanabilir.
dizi
Bir sütunundaki değerleri istenen çok noyutlu bir dizi veya nesne dizisi. Bir nesne dizisi belirtilirse, public özellikler doğrudan döndürülebilir. Protected veya private özelliklerin döndürülebilmesi için sınıf her ikisinide __get() ve __isset() sihirli yöntemleri ile gerçeklemelidir.
sütun_anh
Değerleri döndürülecek sütun. Bu değer döndürülecek sütunun sayısal
bir indisi olabileceği gibi ilişkisel bir dizi için sütunun ismi veya
nesne dizisi için bir özellik ismi olabilir. Dizilerin veya nesnelerin
tamamını döndürmek için null
belirtmek de mümkündür (diziyi
belirtilen indis
ile yeniden indislemek için
yararlı olabilir).
indis
Döndürülecek sütun için kullanılacak sütun indisi veya anahtar. Bu değer sütunun sayısal bir indisi veya dizgesel bir anahtar ismi olabilir. PHP dizi anahtarlarına tür çarpıtması uygulayabilir (bununla birlikte, PHP 8.0.0'dan önce, dizgeye dönüşümü destekleyen nesnelere de izin veriliyordu).
Belirtilen dizinin tek bir sütunundaki değerleri içeren bir dizi ile döner.
Sürüm: | Açıklama |
---|---|
8.0.0 |
Döndürülecek dizinin indis ile belirlenen
sütundaki nesneler artık dizgeye dönüştürülmüyor, bunun yerine bir
TypeError yavrulanıyor.
|
Örnek 1 - Bir ad/soyad kümesinden adları içeren sütunu döndürmek
<?php
// Bir veritabanından alınan olası bir kayıt kümesini temsil eden dizi
$kayıtlar = array(
array(
'id' => 2135,
'ad' => 'John',
'soyad' => 'Doe',
),
array(
'id' => 3245,
'ad' => 'Sally',
'soyad' => 'Smith',
),
array(
'id' => 5342,
'ad' => 'Jane',
'soyad' => 'Jones',
),
array(
'id' => 5623,
'ad' => 'Peter',
'soyad' => 'Doe',
)
);
$adlar = array_column($kayıtlar, 'ad');
print_r($adlar);
?>
Yukarıdaki örneğin çıktısı:
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
Örnek 2 - Bir ad/soyad kümesinden soyadları içeren sütunu "id" sütunu ile indisleyerek döndürmek
<?php
// Önceki örnekteki $kayıtlar dizisi kullanılıyor
$soyadlar = array_column($kayıtlar, 'soyad', 'id');
print_r($soyadlar);
?>
Yukarıdaki örneğin çıktısı:
Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe )
Örnek 3 - Bir nesnenin public "username" özelliğinden username'leri içeren sütunu döndürmek
<?php
class User
{
public $username;
public function __construct(string $username)
{
$this->username = $username;
}
}
$users = [
new User('user 1'),
new User('user 2'),
new User('user 3'),
];
print_r(array_column($users, 'username'));
?>
Yukarıdaki örneğin çıktısı:
Array ( [0] => user 1 [1] => user 2 [2] => user 3 )
Örnek 4 - Sihirli __get() yöntemini kullanarak bir nesnenin private "isim" özelliğindeki isimleri içeren sütunu döndürmek
<?php
class Person
{
private $isim;
public function __construct(string $isim)
{
$this->isim = $isim;
}
public function __get($prop)
{
return $this->$prop;
}
public function __isset($prop) : bool
{
return isset($this->$prop);
}
}
$people = [
new Person('Fred'),
new Person('Jane'),
new Person('John'),
];
print_r(array_column($people, 'isim'));
?>
Yukarıdaki örneğin çıktısı:
Array ( [0] => Fred [1] => Jane [2] => John )