Не срабатывает цикл for, PHP помогите устранить проблему?

anton000
На сайте с 10.05.2013
Offline
32
682

<?
$os[ла] = "Яблоко";
$os[ап] = "Апельсин";
$os[ку] = "Мандарин";
$os[си] = "Киви";
$os[на] = "смородина";

for(reset($os); ($k = key($os)); (next($os)) {
echo "$k => ".current($os)."<br>";
}
?>

Не пойму где ошибка?

I
На сайте с 04.06.2007
Offline
61
#1
anton000:
Не пойму где ошибка?

Есть же foreach, зачем извращаться?

anton000
На сайте с 10.05.2013
Offline
32
#2
Instructor:
Есть же foreach, зачем извращаться?

Спасибо, уже доехало))

---------- Добавлено 07.06.2013 в 09:38 ----------

Чтобы не создавать новую тему, задам здесь вопрос:

Какой многомерный должен быть массив, чтобы воспользоваться функцией array_merge_recursive ?


$a["Ivanov"] = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$b["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$c = array_merge_recursive($a,$b);

Делал так получается: Ivanov это Array Petrov это Array

Напишите пожалуйста, пример такого массива ( для этой функции ) и напишите синтаксис для слияния этих массивов воедино?

Спасибо!

T
На сайте с 19.09.2012
Offline
29
#3

anton000, а что хотите получить то в массиве $c?

нужно чтобы на выходе было


$c = array("Ivanov" => array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru"),
"Petrov" => array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru")
);

так примерно?

anton000
На сайте с 10.05.2013
Offline
32
#4
turen:
anton000, а что хотите получить то в массиве $c?

нужно чтобы на выходе было

$c = array("Ivanov" => array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru"),
"Petrov" => array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru")
);

так примерно?

Нет, я прошу привести пример многомерного массива + с использованием функции array_merge_recursive()

PS - в учебнике написано так:

Для слияния многомерных массивов используется функция array_merge_recursive():

array array_merge_recursive ( array $array1 [, array $...])

и всё больше нечего не сказано про эту функцию, мне бы её как-то расшифровать?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#5

Если Вам этого мало - газуйте на завод, там проще!!!

Подпись))
T
На сайте с 19.09.2012
Offline
29
#6
anton000:
Нет, я прошу привести пример многомерного массива + с использованием функции array_merge_recursive()

немного изменил Ваш пример, чтобы хоть как-то использовать возможности этой функции:


$a = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$b = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$c = array_merge_recursive($a,$b);
print_r($c);

в этом случае получится


Array
(
[name] => Array
(
[0] => Иванов И.И.
[1] => Петров П.П.
)

[age] => Array
(
[0] => 25
[1] => 34
)

=> Array
(
[0] => ivanov@mail.ru
[1] => petrov@mail.ru
)

)

или если в Вашем примере менять только последнюю строку, то:


$a["Ivanov"] = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$b["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$c = array_merge_recursive($a["Ivanov"], $b["Petrov"]);

на выходе будет то же самое.

anton000
На сайте с 10.05.2013
Offline
32
#7
turen:
немного изменил Ваш пример, чтобы хоть как-то использовать возможности этой функции:

$a = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$b = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$c = array_merge_recursive($a,$b);
print_r($c);

в этом случае получится

Array
(
[name] => Array
(
[0] => Иванов И.И.
[1] => Петров П.П.
)

[age] => Array
(
[0] => 25
[1] => 34
)

=> Array
(
[0] => ivanov@mail.ru
[1] => petrov@mail.ru
)

)



или если в Вашем примере менять только последнюю строку, то:

$a["Ivanov"] = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$b["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$c = array_merge_recursive($a["Ivanov"], $b["Petrov"]);

на выходе будет то же самое.

Спасибо, большое! Понял в чём моя проблема: когда выполняется скрипт, то у меня в браузере выводится Array ( [name] => Array ( [0] => Иванов И.И. [1] => Петров П.П. ) [age] => Array ( [0] => 25 [1] => 34 ) => Array ( [0] => ivanov@mail.ru [1] => petrov@mail.ru ) )

Как сделать чтобы выводилось как у вас? ( <br> - пробовал )

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#8

echo '<pre>';

print_r($array);

echo '</pre>';

anton000
На сайте с 10.05.2013
Offline
32
#9
Милованов Ю.С:
echo '<pre>';
print_r($array);
echo '</pre>';

Спасибо большое, помогло!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий