Почему только один элемент отображается вне цикла foreach? - PullRequest
0 голосов
/ 05 июля 2018

Я хочу получить доступ к переменной (массивам) вне цикла foreach. Когда я выполняю эхо внутри цикла foreach, я получаю это:

Reuslt внутри передней двери

$path='http://localhost:8000/api/devices';
try {
    $device= new Client();

    $answer= $device->request('GET', $path);
    $body = $answer->getBody();
    $status = 'true';
    $message = 'Data found!';
    $final= json_decode($body);

    foreach ($final as $res) {
        $id = $res->clientId;
        echo $id;
    }

И вне цикла я получаю только последний элемент массива: Результат вне foreachloop

$route='http://localhost:8000/api/devices';
try {
    $device= new Client();

    $answer= $client->request('GET', $answer);
    $body = $answer->getBody();
    $status = 'true';
    $message = 'Data found!';
    $final= json_decode($body);

    foreach ($finala $res) {
        $id = $res->clientId;
    }
    echo $id;

1 Ответ

0 голосов
/ 05 июля 2018

Вы делаете это:

foreach ($data as $item) {
    $id= $item->clientId;
}
echo $id;

Таким образом, каждый раз ваше последнее значение $id стирается и получает новое текущее значение идентификатора.

Если вы хотите ВСЕ идентификаторы, попробуйте это:

// Create an array
$id_array = array();
foreach ($data as $item) {
    // Add each id value in your array
    $id_array[]= $item->clientId;
}
// Here you can display your array and see that you have all value
var_dump($id_array);

Теперь, если вы хотите echo (или использовать) каждый идентификатор ПОСЛЕ цикла foreach, вы можете сделать:

foreach($id_array as $my_id) {
    echo $my_id;
}
...