array_column

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

array_columnDizinin bir sütunundaki değerlerle döner

Açıklama

array_column(array$dizi, int|string|null$sütun_anh, int|string|null$indis = null): array

array_column() işlevi dizinin 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.

Bağımsız Değişkenler

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).

Dönen Değerler

Belirtilen dizinin tek bir sütunundaki değerleri içeren bir dizi ile döner.

Sürüm Bilgisi

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.

Örnekler

Ö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 )
- __isset() kullanılmazsa boş bir dizi döner.
To Top