Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывести значение из массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
netclan
Отправлено: 23 Сентября, 2013 - 11:34:52
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Есть массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [Иван] => 0
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [Николай] => 111
  11.         )
  12.  
  13.     [2] => Array
  14.         (
  15.             [Николай Иванович] => 21
  16.         )
  17.  
  18.     [3] => Array
  19.         (
  20.             [Алексей] => 13
  21.         )
  22.  
  23.     [4] => Array
  24.         (
  25.             [Сергей] => 14
  26.         )
  27.  

Хочу Вывести в нужном месте значение ключа Николай и делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo $named['Николай'];
  3.  

Кто подскажет, что не так?


-----
O_o
 
 Top
Tek
Отправлено: 23 Сентября, 2013 - 11:43:43
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Февр. 2012  


Помог: 1 раз(а)




Как я пронял named - массив масивов и значение "николай":

будите внимательнее.
 
 Top
netclan
Отправлено: 23 Сентября, 2013 - 12:03:24
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Tek пишет:
Как я пронял named - массив масивов и значение "николай":

будите внимательнее.

Извиняюсь! А как тогда можно объединить все подмассивы?


-----
O_o
 
 Top
Tek
Отправлено: 23 Сентября, 2013 - 12:08:31
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Февр. 2012  


Помог: 1 раз(а)




netclan пишет:
Tek пишет:
Как я пронял named - массив масивов и значение "николай":

будите внимательнее.

Извиняюсь! А как тогда можно объединить все подмассивы?


пройтись по ним циклом например:

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($named as $name){
  3. $new_name = array_merge($name,$new_name);
  4. }
  5. var_dump($new_name);
  6.  
  7.  
 
 Top
esterio
Отправлено: 23 Сентября, 2013 - 12:13:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. $array = array(
  2.         array('Иван' => 0),
  3.         array('Николай' => 111),
  4.         array('Николай Иванович' => 21),
  5.         array('Алексей' => 13),
  6.         array('Сергей' => 14),
  7. );
  8.  
  9. $array = call_user_func_array('array_merge', $array);
 
 Top
netclan
Отправлено: 23 Сентября, 2013 - 12:54:50
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Tek пишет:

пройтись по ним циклом например:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($named as $name){
  3. $new_name = array_merge($name,$new_name);
  4. }
  5. var_dump($new_name);
  6.  
  7.  


Сделал так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $new_name = array();
  3. foreach($named as $name){
  4. $new_name = array_merge($name,$new_name);
  5. }
  6. var_dump($new_name);
  7. print_r($new_name);
  8.  

Получилось следующее:

PHP:
скопировать код в буфер обмена
  1. array(5) {
  2.   ["Сергей"]=>
  3.   string(1) "14"
  4.   ["Алексей"]=>
  5.   string(1) "13"
  6.   ["Николай Иванович"]=>
  7.   string(1) "21"
  8.   ["Николай"]=>
  9.   string(1) "111"
  10.   ["Иван"]=>
  11.   string(1) "0"
  12. }
  13. 2Array
  14. (
  15.     [Сергей] => 14
  16.     [Алексей] => 13
  17.     [Николай Иванович] => 21
  18.     [Николай] => 111
  19.     [Иван] => 0
  20. )

Не понял, как так получается Не понял


Попробовал вариант:
esterio пишет:

$array = array(
$named
);
$array = call_user_func_array('array_merge', $array);
print_r($array);

получил на выходе тот же массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [Иван] => 0
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [Николай] => 111
  11.         )
  12.  
  13.     [2] => Array
  14.         (
  15.             [Николай Иванович] => 21
  16.         )
  17.  
  18.     [3] => Array
  19.         (
  20.             [Алексей] => 13
  21.         )
  22.  
  23.     [4] => Array
  24.         (
  25.             [Сергей] => 14
  26.         )
  27.  )
  28.  

Что сделал не так?


-----
O_o
 
 Top
esterio
Отправлено: 23 Сентября, 2013 - 13:30:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




netclan пишет:
получил на выходе тот же массив:

Не врите я же протестировал сначала, все отлично работает
 
 Top
Tek
Отправлено: 23 Сентября, 2013 - 14:01:15
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Февр. 2012  


Помог: 1 раз(а)




Зачем вы оборачиваете все ещё в 1 массив?

явно не то.

Тоже проверил работают оба решения нормально.
 
 Top
netclan
Отправлено: 23 Сентября, 2013 - 14:06:22
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




[quote=Tek]Зачем вы оборачиваете все ещё в 1 массив?

явно не то.

Тоже проверил работают оба решения нормально.[/quote]

В первом случае все работает, я затупил с var_dump($new_name);

[quote=esterio][/quote]
Во втором случае, так же затупил, как вы уже отметили Все обернул еще в один массив!

Извиняюсь, спасибо за ответ! Еще такой вопрос, какое решение менее ресурсоемкое, если обрабатывать большой массив?


-----
O_o
 
 Top
Tek
Отправлено: 23 Сентября, 2013 - 14:12:07
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Февр. 2012  


Помог: 1 раз(а)




Думаю разница не велика, используйте решение esterio

(Отредактировано автором: 23 Сентября, 2013 - 14:13:27)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB