<?php
function searchForJpg($array) {
$results = [];
foreach ($array as $item) {
if (is_array($item)) {
// 配列の場合は再帰的に検索を行う
$results = array_merge($results, searchForJpg($item));
} elseif (is_string($item) && strpos($item, '.jpg') !== false) {
// 文字列が".jpg"を含む場合は結果に追加する
$results[] = $item;
}
}
return $results;
}
// 検索対象の配列
$data = [
'image1.jpg',
'folder1' => [
'image2.jpg',
'image3.png',
],
'folder2' => [
'image4.jpg',
'folder3' => [
'image5.jpg',
'image6.png',
],
],
'image7.png',
];
// 再帰的な検索を実行
$results = searchForJpg($data);
// 結果の出力
foreach ($results as $result) {
echo $result . "\n";
}
Laravelのバッチ(app/Console/Commands/配下)でやる場合は$thisつける
Laravelのバッチ内で独自関数を実行しようとしたら、「Call to undefined function App\Console\Commands\関数名()」
に書いた通り、Laravelのバッチ(app/Console/Commands/配下)で 独自に作成した関数を呼び出す場合は、
$this->独自関数()
で呼び出す。
同様に、
独自関数内で自分自身の関数を呼び出しているところも「$this->」をつける。でないと、
Call to undefined function
って怒られる。
コメント