Select din json_decode PHP

Salutare revin cu o noua problema.

$str = file_get_contents('http://ip/file.json/');
$json = json_decode($str, true);

La print arata ceva de genul.

Array
(
    [0] => Array
        (
            [endpoint] => 127.0.0.1
            [id] => 1
            [identifiers] => Array
                (
                    [0] => steam:x
                    [1] => license:x
                )

            [name] => Test User.
            [ping] => 80
        )

)

Intrebarea este:
Cum pot selecta doar numele pentru fiecare player de pe server, fara a fi nevoit sa caut cu tot cu ID-ul de pe server?
Exemplu:
echo $json['0']['name'];
in
echo $json['name'];

Fara a mai folosi ['0'].
Nu imi dau seama exact mai tarziu cum voi face foreach-ul sau while-ul pentru a selecta numele tuturor jucatorilor.

Multumesc!

Cred ca array_column e ceea ce iti trebuie tie si il folosesti asa:

$str = file_get_contents('http://ip/file.json/');
$json = json_decode($str, true);
$playerNames = array_column($json, 'name'); 
2 Likes

Merge <3 Dar daca ar fi sa afisez doar numele lor?
Am incercat cu print_r

Array
(
    [0] => x
    [1] => x2
)

Adica cum as putea face un echo in acest array_column?

Multumesc mult!

De ce nu lucrezi direct cu obiecte, si transformi json_decode in array ?

1 Like

Este prima data cand lucrez cu JSON si dupa ce am facut putin research doar la asta am putut ajunge.

daca vrei doar sa afisezi numele poti face foreach direct pe array-ul din json_decode, nu mai ai nevoie de array_column.

$str = file_get_contents('http://ip/file.json/');
$json = json_decode($str, true);
foreach($json as $item) { echo $item['name']; }
2 Likes

Trimite-mi si mie json-ul.

Done. Am sa incerc acum si varianta lui @anon48907206
Multumesc pentru raspunsuri.