| |
|
|
| | Есть вот такое присвоение:
<?php
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1][$mat_h4_1] = $cont_h4;
?>
|
Все переменные определены, все имеют некоторые строковые значения.Но при выводе массива $arr на экран с помощью print_r() видно, что он трехмерный, то есть четвертый ключ игнорируется. Более того, эксперимент показал, что если написать
</php
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1] = 'qwerty';
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1][$mat_h4_1] = 'AB';
?>
|
то элемент массива с координатами $arr[$mat_h1_1][$mat_h2_1][$mat_h3_1] не массив с именем qwerty, а строка "Awerty".
Я где-то по-тупому ошибаюсь? | |
| |
|
|
| |
|
|
| |
для: Киналь
(21.12.2007 в 14:25)
| | | значения ключей? | |
| |
|
|
| |
|
|
| |
для: KPETuH
(21.12.2007 в 14:42)
| | | Просто строки текста. Да вот, полностью скрипт:
<?php
function pre($array)
{
echo "<pre>";
print_r($array);
echo "</pre>";
}
$mat_h1_1 = 'этикет1';
$mat_h2_1 = 'этикет2';
$mat_h3_1 = 'этикет3';
$mat_h4_1 = 'этикет4';
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1] = 'qwerty';
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1][$mat_h4_1] = 'AB'; pre($arr);
?>
|
| |
| |
|
|
| |
|
|
| |
для: Киналь
(21.12.2007 в 14:48)
| | | В начале есть строка "qwerty". String в PHP - это фактически массив, каждый элемент которого занимает 1 байт, причем каждый элемент пронумерован. Самый обычный числовой массив (не потому, что каждый элемент занимает 1 байт, а потому что он всегда пронумерован). Потом Вы обращаетесь к строке, как к массиву. $mat_h4_1 - строка, а string - числовой массив.
PHP приводит $mat_h4_1 к integer и получает 0. 0 - это "q" в Вашем числовом массиве.
Потом при попытке "впихнуть" в ячейку "AB" (2 байта), вмещающую только 1 байт, "впихивается" только "A".
И получается "Awerty". | |
| |
|
|
| |
|
|
| |
для: Unkind
(21.12.2007 в 15:01)
| | | Ах вот оно что! Хех, надо было все-таки учить С++, не забыл бы про типы)
А что можно тут сделать? Попробовал кавычки ставить - не помогло( | |
| |
|
|
| |
|
|
| |
для: Киналь
(21.12.2007 в 15:11)
| | | А что Вам нужно? Я, если честно, так и не понял. | |
| |
|
|
| |
|
|
| |
для: Киналь
(21.12.2007 в 15:11)
| | |
<?php
function pre($array)
{
echo "<pre>";
print_r($array);
echo "</pre>";
}
$mat_h1_1 = 'этикет1';
$mat_h2_1 = 'этикет2';
$mat_h3_1 = 'этикет3';
$mat_h4_1 = 'этикет4';
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1] = 'qwerty';
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1] = array($mat_h4_1 => "AB");
pre($arr);
?>
|
как нить так :) | |
| |
|
|
| |
|
|
| |
для: Киналь
(21.12.2007 в 14:25)
| | | Большое всем спасибо!Помогло приведение типов:
$arr[$mat_h1_1][$mat_h2_1][$mat_h3_1] = array_merge($arr[$mat_h1_1][$mat_h2_1][$mat_h3_1], array());
|
| |
| |
|
|