PHPで配列を再帰的に検索して”.jpg”を含む文字列を抽出するサンプルコード | クズリーマンのカス備忘録

PHPで配列を再帰的に検索して”.jpg”を含む文字列を抽出するサンプルコード

php-logo php
スポンサーリンク
<?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

って怒られる。

コメント

タイトルとURLをコピーしました