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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как вывести многомерный массив?
 
 автор: oliwinb   (06.07.2012 в 11:53)   письмо автору
 
 

array(2) {
  ["name"]=>
  array(1) {
    [0]=>
    string(15) "Audi R8_red.jpg"
  }
  ["path"]=>
  array(1) {
    [0]=>
    string(58) "static/uploads/attachment/2012/07/06/10/47/Audi R8_red.jpg"
  }
}

I mojno ego kak-to sdelati bolee udobnim dlea 4teniya?
Spasibo

  Ответить  
 
 автор: cheops   (06.07.2012 в 11:57)   письмо автору
 
   для: oliwinb   (06.07.2012 в 11:53)
 

1. Сейчас вы выводите его при помощи функции print_r() или какого-то другого аналога?
2. Элемент массива состоит всегда состоит из двух подмассивов name и path? Или структура элементов может изменяться?

  Ответить  
 
 автор: oliwinb   (06.07.2012 в 11:58)   письмо автору
 
   для: oliwinb   (06.07.2012 в 11:53)
 

Formiruetsea tak:

function upload_file() {
....
....
$array_files['name'][$key] = $_FILES['userfile']['name'][$key];
$array_files['path'][$key] = $path.'/'.$_FILES['userfile']['name'][$key];

..
return $array_files'
}

$new_path=array();
$this->upload_file();

  Ответить  
 
 автор: oliwinb   (06.07.2012 в 11:59)   письмо автору
 
   для: oliwinb   (06.07.2012 в 11:58)
 

Вывожу через var_dump
Массив должен состоять из множества эдементов имен и пути файла.

  Ответить  
 
 автор: oliwinb   (06.07.2012 в 12:06)   письмо автору
 
   для: oliwinb   (06.07.2012 в 11:59)
 

Po vsei vidimosti tak"

$message['attach']['name'][0];
$message['attach']['path'][0]; 
Dlya odnogo elementa, no eto ne o4eni udobno, esti drugie varianti?

I 4ere foreach molno takoi massiv vivesti?

  Ответить  
 
 автор: cheops   (06.07.2012 в 12:13)   письмо автору
 
   для: oliwinb   (06.07.2012 в 12:06)
 

Можно при помощи цикла foreache обойти один из внутренних массивов, а при помощи полученного ключа/индекса обратиться к параллельному. Т.е. начать отталкиваться от такого скрипта
<?php
  foreache
($message as $key => $value)
  {
    echo 
"Элемент N $key <br />";
    echo 
$message['attach']['name'][$i]."<br />";
    echo 
$message['attach']['path'][$i]."<br /><br />";
  }
?>

  Ответить  
 
 автор: oliwinb   (06.07.2012 в 12:15)   письмо автору
 
   для: cheops   (06.07.2012 в 12:13)
 

Сделал вот так:

<?
 
if (!empty($message['attach']))

               {
                
              
          
          for (
$i=0$i<count($message['attach']['name']);$i++){


echo 
anchor($message['attach']['path'][$i], $message['attach']['name'][$i],'target="_blank"');

          }



  } 
?>


Может стоит изначально структуру массива изменить - упростить?

  Ответить  
 
 автор: cheops   (06.07.2012 в 12:27)   письмо автору
 
   для: oliwinb   (06.07.2012 в 12:15)
 

Да, нет можно и так оставить, если вам удобно, но вообще обычно стараются индексы двинуть повыше, т.е. вместо $message['attach']['path'][$i] использовать $message['attach'][$i]['path']

  Ответить  
 
 автор: oliwinb   (06.07.2012 в 12:44)   письмо автору
 
   для: cheops   (06.07.2012 в 12:27)
 

Spasibo

  Ответить  
 
 автор: confirm   (06.07.2012 в 13:23)   письмо автору
 
   для: oliwinb   (06.07.2012 в 12:15)
 

>Может стоит изначально структуру массива изменить - упростить?

Зачем его вообще создавать, если $_FILES это и есть массив, причем вполне удобный для обработки?

  Ответить  
Rambler's Top100
вверх

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