Моя проблема очень специфична. Я начинающий программист php, и я испытываю трудности с индексацией массива datastructure в PHP. Программа считывает из входного файла (input.txt
) и сохраняет результат в массив с ключом, аналогичным элементу. Хотя файлы input.txt
имеют номера для удобства, я должен хранить их как строку (моей программе нужны целые числа размером более 32 бит). Но когда я пытаюсь их индексировать как $a["3"]
, я получаю сообщение об ошибке Undefined offset: 3
. I tried $a['3']
, $a[3]
все с тем же результатом. Но любопытно, что я могу проиндексировать последний элемент в массиве $a["2"]
правильно! Пожалуйста помоги.PHP: проблема индексации ассоциативного массива
Вот входной текстовый файл:
3
4
5
1
2
Вот фрагмент кода:
<?php
ignore_user_abort(true);
set_time_limit(0);
$temp=0;
$a= array();
$file= fopen("input.txt","r") or exit("unable to open file");
while(!feof($file)){
$temp=fgets($file);
$a[$temp]=$temp;
}
fclose($file);
echo "<br>The array is .. ";
foreach ($a as $key => $item) {
echo "<br> Key => item =",$key."=>",$item ;
echo "<br>Manual array test ",$a["3"]; // This line demonstrates the problem.
}
echo "<br>Manual array test ",$a["2"]; // This one has no error! So basically only the last element is being indexed correctly
//echo "<br> No of 2 sums is ",twoSum($a,4,6);
?>
'$ temp = (int) fgets ($ file);', no? – raina77ow
, вы должны получить синтаксические ошибки для использования ',' где вы должны использовать '.', когда вы выполняете строки. Например здесь: 'echo '
Key => item =", $ key. "=>", $ Item; 'it должно быть' echo'
Key => item = ". $ Key." => ". $ item; ' –
@ raina77ow OP хочет хранить целые числа> INT_MAX, поэтому необходимо использовать строковый тип. – Benubird