Как правильно получить ключ массивы по значение?

99
27 мая 2019, 02:30

Как можно получить все ключи по session = jutv0undrd4l1eodf4mm4egd5c? Код здесь

Наш массив

$array = [
    "5c0789634134f" => (object)[
        "id" => "5c0789634134f",
        "session" => "jutv0undrd4l1eodf4mm4egd5c"
    ],
    "5c07896482972" => (object)[
        "id" => "5c07896482972",
        "session" => "jutv0undrd4l1eodf4mm4egd5c"
    ],
    "5c07896a5c5f2" => (object)[
        "id" => "5c0789634134f",
        "session" => "bvboak847tnbmhnsehogtct7dr"
    ]
]; 

Этот код вернет только первый ключ

var_dump(array_search("jutv0undrd4l1eodf4mm4egd5c", array_map(function($user){return $user->session;}, $array)));

string(13) "5c0789634134f"

Как можно получить такой ответ?

array(2) {
  [0]=>
  string(13) "5c0789634134f"
  [1]=>
  string(13) "5c07896482972"
}
Answer 1

array_filter Вам поможет

вот пример упрощенный песочница

<?php
function test($var)
{
    return ($var=="5c07896482972");
}
$array = ["5c0789634134f","5c07896482972","5c07896a5c5f2","5c07896482972"]; 
print_r(array_filter($array, "test"));
?>
Answer 2

Решил сам, спасибо всем! Код здесь

<?php
$array = [
    "5c0789634134f" => (object)[
        "id" => "5c0789634134f",
        "session" => "jutv0undrd4l1eodf4mm4egd5c"
    ],
    "5c07896482972" => (object)[
        "id" => "5c07896482972",
        "session" => "jutv0undrd4l1eodf4mm4egd5c"
    ],
    "5c07896a5c5f2" => (object)[
        "id" => "5c0789634134f",
        "session" => "bvboak847tnbmhnsehogtct7dr"
    ]
];
$newarray = [];
foreach(array_keys($array) as $key){ 
    $temp = $array[$key]->session;
    if ($temp == 'jutv0undrd4l1eodf4mm4egd5c'){ 
        $newarray[$key] = $array[$key]; 
    }
}
var_dump($newarray);
READ ALSO
VK api отправка документа (gif) на стену группы

VK api отправка документа (gif) на стену группы

Нужна помощь, есть скрипт отправки фото на стену группы, как сделать отправку документа?

141
php обращение по ключу

php обращение по ключу

Помогите пожалуйста мне нужно обращаться к array по ключу, попытался смудрить такой код но он не срабатывает(

124
Почему не работает file_get_contents()?

Почему не работает file_get_contents()?

Мне нужно авторизованному пользователю показывать 5 его друзей, для этого написал такой код:

130