Arr::random()
配列からランダムに値を取得します。
第二パラメーターで取得する数を指定することもできます。
$datas = ['aaa', 'bbb', 'cccc', 'ddd', 'eee', 'aaabbb'];
$result = Arr::random($datas);
echo $result . PHP_EOL;
// pullみたいに配列の中身がなくなることはない
print_r($datas);
// 複数取得も可
$result = Arr::random($datas, 3);
print_r($result);
/*
aaabbb
Array
(
[0] => aaa
[1] => bbb
[2] => cccc
[3] => ddd
[4] => eee
[5] => aaabbb
)
Array
(
[0] => bbb
[1] => cccc
[2] => ddd
)
*/
Arr::set()
ドット記法を使用して配列に値をセットします。
$datas = [
0 => ['name' => 'あああ', 'kana' => 'aaa', 'age' => 11],
1 => ['name' => 'いいい', 'kana' => 'iii', 'age' => 22],
2 => ['name' => 'ううう', 'kana' => 'uuu', 'age' => 33],
];
Arr::set($datas, '0.name', 'zzzz');
Arr::set($datas, 'aaa.bbb.ccc.ddd', 'zzzz');
print_r($datas);
/*
Array
(
[0] => Array
(
[name] => zzzz
[kana] => aaa
[age] => 11
)
[1] => Array
(
[name] => いいい
[kana] => iii
[age] => 22
)
[2] => Array
(
[name] => ううう
[kana] => uuu
[age] => 33
)
[aaa] => Array
(
[bbb] => Array
(
[ccc] => Array
(
[ddd] => zzzz
)
)
)
)
*/
Arr::sort()
配列の値でソートします。
$datas = ['あああ', 'aaa', 11];
$result = Arr::sort($datas);
print_r($result);
/*
Array
(
[1] => aaa
[0] => あああ
[2] => 11
)
*/
Arr::sortRecursive()
多重配列に対して全てのデータを再帰的にソートします。
キーが数値の配列に対しては値でソート、連想配列に対してはキーでソートします。
$users = [
2 => ['Madai', 'Kanpachi', ['Saba', 'Iwashi', 'Aji'], ['name' => '氏名', 'kana' => 'ふりがな', 'email' => 'メールアドレス']],
1 => ['Judo', 'Swimming', 'Marathon', 'Baseball'],
0 => [5, 2, 9, 7],
];
$sorted = Arr::sortRecursive($users);
print_r($sorted);
/*
Array
(
[0] => Array
(
[0] => 2
[1] => 5
[2] => 7
[3] => 9
)
[1] => Array
(
[0] => Baseball
[1] => Judo
[2] => Marathon
[3] => Swimming
)
[2] => Array
(
[0] => Kanpachi
[1] => Madai
[2] => Array
(
[email] => メールアドレス
[kana] => ふりがな
[name] => 氏名
)
[3] => Array
(
[0] => Aji
[1] => Iwashi
[2] => Saba
)
)
)
*/
Arr::where()
クロージャで条件を指定し、配列を絞り込みます。
$datas = ['uううう', 'iいいい', 'aあああ'];
$result = Arr::where($datas, function ($value, $key) {
return preg_match('/^a/', $value);
});
print_r($result);
/*
Array
(
[2] => aあああ
)
*/