В php записать значение в массив при Foreach

Нужно из массива получить номер рабочего счетчика и дату, а также вывести на экран, например, первое значение.

   $homepage_decode = json_decode($homepage, true); 
   $number= array();
   $last_reading_date =array();
   foreach ($homepage_decode['data'][2]  as $i){
     foreach ($i as $i1){
       if ($i1['state'] === 'Действует' and ($i1['meterType'] === 'hotWater' or $i1['meterType'] === 'coldWater') ) {
           $number = $i1['serialNumber'];
           $last_reading_date = $i1['lastReadingDate'];
           $last_reading_date = preg_replace('(0:00:00)', ' ', $last_reading_date);
    print_r('Номер: '.$number[0].' Дата: '.$last_reading_date[0]. '</br>');
 }  }  }

Это работает только если выводить сразу все значения print_r('Номер: '.$number.' Дата: '.$last_reading_date. '</br>');
В чем ошибка?
Массив:

{
    "dataType": "data_for_bot",
    "data": [
        {
            "balance": 657.26
        },
        {
            "fullName": «Сидоров И.П.»
        },
        {
            "metersData": [
                {
                    "serialNumber": "738362",
                    "state": "Действует",
                    "lastReadingDate": "28.02.2022 0:00:00",
                    "meterType": "hotWater",
                },
                {
                    "serialNumber": "00507723",
                    "state": "Не действует",
                    "lastReadingDate": "30.06.2021 0:00:00",
                    "meterType": "hotWater",
                },
                {
                    "serialNumber": "8091855",
                    "state": "Не действует",
                    "lastReadingDate": "26.07.2019 0:00:00",
                    "meterType": "hotWater",
                },
                {
                    "serialNumber": "00505818",
                    "state": "Действует",
                    "lastReadingDate": "27.01.2022 0:00:00",
                    "meterType": "coldWater",
                },
                {
                    "serialNumber": "01538380",
                    "state": "Действует",
                    "lastReadingDate": "18.05.2022 0:00:00",
                     "meterType": "electricity",}]}]}

Ответы (2 шт):

Автор решения: Pr0gramm1st

Если вам необходимо вывести только одно значение, то можно вот так попробовать: перед циклом объявить переменную

$rabochiy_schetchik_i_data = [];
$schetchik_cikla = 1;

в цикле при условии (если первый элемент):

if ($schetchik_cikla == 1) {
   $rabochiy_schetchik_i_data ["counter"] = $number[0];
    $rabochiy_schetchik_i_data["date"] = $last_reading_date[0];
} $schetchik_cikla ++; //инкрементируем счётчик там, где нам нужно. В данном случае - перед закрывающей цикл фигурной скобкой

И вне цикла:

print_r("Номер:" . $rabochiy_schetchik_i_data["counter"] . " Дата:" . $rabochiy_schetchik_i_data["date"]);
→ Ссылка
Автор решения: Виктор Карев

Если я правильно понял фразу "Мне нужно будет регулярно обращаться то к 1, то к 2, то к 3 значению вне цикла", то

   $homepage_decode = json_decode($homepage, true); 
   $number = 2; // Здесь указываем, что нам нужен второй рабочий счётчик
   $counter = false; // Сюда будем писать счётчик, если найдём
   $n = 0; // 
   foreach ($homepage_decode['data'][2]  as $i){
     foreach ($i as $i1){
       if ($i1['state'] === 'Действует' and ($i1['meterType'] === 'hotWater' or $i1['meterType'] === 'coldWater') ) {
           if (++$n == $number) { // проверяем номер счётчика
             $counter = $i1;
             break;
           }
       }
     }
   }
   if ($counter) { // если счётчик найден, то выводим.
     $number = $counter['serialNumber'];
     $last_reading_date = $counter['lastReadingDate'];
     $last_reading_date = preg_replace('(0:00:00)', ' ', $last_reading_date);
     echo 'Номер: ' . $number . ' Дата: ' . $last_reading_date . '</br>';
   }
→ Ссылка