laravel Функция In_array () для определения строки - PullRequest
0 голосов
/ 04 апреля 2020

Массив выглядит следующим образом:

$array = ['blog.setting', 'blog.post', 'blog.delete', 'blog.edit', 'other.other'];

Я хочу знать, есть ли элемент, имеющий 'blog.'; Может быть, так будет идеально.

in_array('blog.*', $array)

Кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 04 апреля 2020

Как вы упомянули Laravel в своих тегах, вы можете сделать:

use Illuminate\Support\Str;
use Illuminate\Support\Collection;

$blogTest = Collection::make($array)
    ->contains(function ($elt) {
        return Str::is('blog.*', $elt);
    });
0 голосов
/ 04 апреля 2020

Вы можете сделать с чистым PHP, как:

    $array = ['blog.setting', 'blog.post', 'blog.delete', 'blog.edit', 'other.other'];
    $string = implode(',',$array);

    if (strpos($string, 'blog') !== false) {
        dump('There is blog string inside of given array!');
        return true;
    }
0 голосов
/ 04 апреля 2020

U нужно использовать регулярное выражение, а array_filter метод

$array = ['blog.setting', 'blog.post', 'blog.delete', 'blog.edit', 'other.other'];

$filtered = array_filter($array, function($value){
    return preg_match('/^blog\..*$/m', $value);
});
...