За последние 24 часа нас посетили 60816 программистов и 1771 робот. Сейчас ищут 862 программиста ...

Определение существования переменной в массиве

Тема в разделе "PHP для новичков", создана пользователем xak2, 4 мар 2008.

  1. xak2

    xak2 Guest

    Есть массив с огромным количеством ключей (массив из xml). Есть 2 переменных:

    Если в массиве 1 фотография, то выглядит так:
    Код (Text):
    1. $xml[item][~][photos][photo][value]: photo.jpg
    Если фотографий больше чем 1:
    Код (Text):
    1. $xml[item][~][photos][0][photo][value]: photo1.jpg
    2. $xml[item][~][photos][1][photo][value]: photo2.jpg
    Как определить наверняка, есть ли фотография, а может их много, и вывести все переменные. Пытался сперва:
    PHP:
    1. if($xml[item][~][photos][1][photo][value])
    Но он всегда выдавал TRUE. Пробовал измерять длину переменной, но если следующая ступень массива Array() то выдавал 5. Читал манул по массивам, ничего не нашел.
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Сделай проще. Приведи к массиву если фото всего одна:
    Код (Text):
    1. if ($xml[item][~][photos][photo][value]){
    2.     $xml[item][~][photos][0][photo][value] = $xml[item][~][photos][photo][value];
    3.     unset($xml[item][~][photos][photo][value];);
    4. }
    Теперь работай с фотографиями как-будто их всегда много, то есть пропускай через цикл. Ты ведь так поступаешь?
     
  3. xak2

    xak2 Guest

    Дело в том что при if ($xml[item][~][photos][photo][value]) о нвсегда выдает TRUE
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Покажи массив целиком.
    PHP:
    1. <?php
    2. print '<pre>';
    3. print_r($array);
     
  5. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    можно попробовать определить количество фото:
    PHP:
    1. <?php echo count( $xml[item][~][photos] );?>
    либо проверить на существование / пустоту:
    PHP:
    1. <?php
    2. var_dump( isset( $xml[item][~][photos] ) );
    3. var_dump( empty ( $xml[item][~][photos] ) );
    4. ?>
    [/php]