配列関数 2022年10月02日 14:39   編集
入力配列から単一のカラムの値を返す
ということだが、多次元配列から特定のキーの値だけを取り出して新たな配列を作ることができる。例えば
$data['Y4vC8DOE'] = array('title'=>'strpos', 'category'=>'String関数');
$data['O3LPSQ4p'] = array('title'=>'preg_match', 'category'=>'PCRE関数');
$data['D7gFDJzL'] = array('title'=>'date_create', 'category'=>'日付・時刻関数');
$data['zQVvImlQ'] = array('title'=>'array_multisort', 'category'=>'配列関数');
$data['EJTCFyBt'] = array('title'=>'is_array', 'category'=>'変数操作関数');
のような多次元配列$dataがある場合、
$array = array_column($data, 'category');
print_r($array);
の結果は
続きを読む
counter:300
配列関数 2021年04月15日 17:09   編集
別名:rsort
値でソートする。キーと値の関係は維持されない。連想配列に使用した場合、キーはソートした値の順番の数値に置き換えられる。
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
の結果は
fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange 
counter:713
配列関数 2021年04月15日 17:04   編集
別名:krsort
キーと値の関係を維持して、キーでソートする。ksortは昇順、krsortは降順
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
の結果は
a = orange b = banana c = apple d = lemon 
counter:657
配列関数 2021年04月15日 16:56   編集
別名:arsort
キーと値の関係を維持して、値でソートする。asortは昇順、arsortは降順
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
の結果は
c = apple b = banana d = lemon a = orange
counter:519
配列関数 2017年04月05日 10:29   編集
配列の差を計算する
配列を他の配列と比較し、 他の配列には存在しない要素だけを返す。
$list1 = array(1,7,3,4,5);
$list2 = array(1,2,3,4,5);
print_r( array_diff($list1,$list2) );
の結果は
Array ( [1] => 7 ) 
counter:2,838
配列関数 2017年02月08日 20:48   編集
配列の一部を展開する
元の配列は変わらない。
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2); // "c", "d", "e" を返す
$output = array_slice($input, -2, 1); // "d" を返す
$output = array_slice($input, 0, 3); // "a", "b", "c" を返す
counter:2,888
配列関数 2017年01月26日 16:34   編集
配列の共通項を得る
$array1 =array('apple','melon','banana','peach','orange');
$array2 = array('melon','lemon','peach');
print_r(array_intersect($array1,$array2));
実行結果
Array
(
[1] => melon
[3] => peach
)
counter:2,804
配列関数 2016年10月05日 15:40   編集
配列のキーと値を反転する

配列の場合、値が重複していても問題ないが、同じキーの配列の値は1個だけとなる。
したがって元の配列で値が重複していた場合、反転すると同じキーが複数存在することになるが、この場合、最後のキーだけが採用されることになる。
$ar = array('ab'=>'xy', 'cd'=>'yz', 'ef'=>'xy' );
$ar2 = array_flip($ar);
foreach ($ar2 as $key=>$val) {
echo "$key → $val\n";
}
実行結果
xy → ef
yz → cd
counter:2,672
配列関数 2016年10月04日 13:05   編集
配列に値があるかチェックする
in_array ( 捜す値 , 配列 [,オプション])
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
実行結果
Got Irix
counter:2,767
配列関数 2016年10月03日 20:08   編集
複数の多次元の配列をソートする

本来の使用法とは違うが、シュウォーツ変換風の使用例
$list = array('abc,52,オレンジ','def,32,りんご','hij,6,バナナ','klm,21,キウイ');
$sort = array();
foreach ($list as $_) {
$tmp = explode(',',$_);
if (isset($tmp[1])) {
$sort[] = $tmp[1];
}
}
array_multisort($sort,SORT_ASC,SORT_NUMERIC,$list);
foreach ($list as $_) {
echo "$_\n";
}
実行結果
hij,6,バナナ
klm,21,キウイ
def,32,りんご
abc,52,オレンジ
counter:2,838