Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Foreach для перебора подмассивов

Сообщения:  [1-10]    [11-20]  [21-25] 

 
 автор: Мышара   (13.12.2010 в 13:42)   письмо автору
 
   для: Trianon   (10.12.2010 в 18:55)
 

Он ругался, что массивом данные вывести не может.

<? foreach($data->overview->overview->data->{0}->ip as $ip):?>

        <?= $ip->count;?> for ip <?= $ip->name?> <br/>
    <? endforeach; ?>    


Вот заработало!

  Ответить  
 
 автор: psychomc   (10.12.2010 в 21:06)   письмо автору
 
   для: Мышара   (10.12.2010 в 18:45)
 

нененененене, его и так очень много)

  Ответить  
 
 автор: sim5   (10.12.2010 в 19:07)   письмо автору
 
   для: Мышара   (10.12.2010 в 18:31)
 

Как использовать array_walk... да по разному, как потребуется, хотя делать он может только одно, то есть вы можете вилкой есть, а можете использовать ее как миксер. ;-)
Вам лучше простой обход массива сделать, о чем уже писали ранее. Не знаю, что в вашем понимании пустой массив, но к примеру тут проверка ключа count, и если не пуст, то вывод:
<?
$arr 
= array('ip' => array(
  array(
'name' => '1111''count' => 11'match' => 1),
  array(
'name' => '2222''count' => 22'match' => 1),
  array(
'name' => '3333''count' => 33'match' => 1),
  array(
'name' => '4444''count' => 44'match' => 1),
  array(
'name' => '5555''count' => '''match' => 1),
  array(
'name' => '6666''count' => 55'match' => 1),
  array(
'name' => '7777''count' => '''match' => 1),
  array(
'name' => '8888''count' => 66'match' => 1),
  array(
'name' => '9999''count' => 77'match' => 1))
);

foreach(
$arr['ip'] as $key) if($key["count"]) echo $key["count"] . " domains for ip " $key["name"] . "<br>";
Можете добавить в массив еще записей для проверки, убедитесь сами, что влиять на работу это не будет, кроме как на время обработки.

  Ответить  
 
 автор: Trianon   (10.12.2010 в 18:55)   письмо автору
 
   для: Мышара   (10.12.2010 в 18:35)
 

вот этот фрагмент
<? foreach($data->overview->overview->data->{0}->ip as $ip) {
        foreach (
$ip as $var) {
            echo 
$var["count"]. " for ip " $var["name"] . "<br/>";
            } } 
?>  


...давайте разделим так:

<? 

   $list 
$data->overview->overview->data->{0}->ip;

     foreach(
$list as $ip) {
        foreach (
$ip as $var) {
            echo 
$var["count"]. " for ip " $var["name"] . "<br/>";
            } } 
?>  


так вот, очень неплохо было бы показать начало $list.
Например, так:
$start = array_slice($list, 0, 5);
var_dump($start);

  Ответить  
 
 автор: Мышара   (10.12.2010 в 18:45)   письмо автору
 
   для: psychomc   (10.12.2010 в 18:36)
 

Дистанционный в мозг пойдет? )

  Ответить  
 
 автор: psychomc   (10.12.2010 в 18:36)   письмо автору
 
   для: Мышара   (10.12.2010 в 18:31)
 

>П.С. Между прочим, мадемуазель ))))

ну так отлично, значит проблема решится за секас ;)

  Ответить  
 
 автор: Мышара   (10.12.2010 в 18:35)   письмо автору
 
   для: Trianon   (10.12.2010 в 18:20)
 

а) уровни вложенности проверю.
б) не использую ничего кроме того, что вам показываю (

б) В чем бы? Что еще сказать? Я скажу без проблем, но вот этот кусок и эн массивов, в которые он вложен - это все, с чем я работаю (

  Ответить  
 
 автор: Мышара   (10.12.2010 в 18:31)   письмо автору
 
   для: sim5   (10.12.2010 в 18:16)
 

Нет не глубина, а именно число вложенных массивов.

Как тут использовать array_walk, Я ни разу с ним дела не имела. Я сосбственно сумела только проверять массив на пустоту. Дальше затык.

П.С. Между прочим, мадемуазель ))))

  Ответить  
 
 автор: Trianon   (10.12.2010 в 18:20)   письмо автору
 
   для: Мышара   (10.12.2010 в 17:58)
 

это значит, что Вы
а) на один уровень вложенности промахнулись
б) применяете числовые ключи вместо символьных.
вытаскивая таким образом символы из строки, а не строки из массива.


б) помимо этого, означает, что Вы вводите нас в заблуждение.

  Ответить  
 
 автор: Trianon   (10.12.2010 в 18:18)   письмо автору
 
   для: Мышара   (10.12.2010 в 17:56)
 

это переменная, в которую Ваш бэкэнд вернул набор данных, который Вы называете массивом.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-25] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования