Я использую форму - для получения данных - и перебираю эти данные для создания различных массивов в файле с именем data.txt.Я пытаюсь вытащить индекс каждого массива в отдельности.Я хочу иметь возможность отображать (arry1 - value1) в определенном div на странице и echo (arry1 - value2) в другом div на странице и т. Д.
Я могу получить массивы для печати, нокогда я пытаюсь вызвать только один конкретный индекс из одного конкретного массива, я либо получаю ответ NULL, либо страница читает «эта страница не работает»
Вот так выглядит мой файл data.txt - онправильно получает данные из формы.Но если эти две группировки являются массивами, почему я не могу извлечь информацию по одному индексу за раз?
data.txt
{
"let": {
"chef": "tema",
"bio": "temabio",
"image": "temaimage",
"special_name": "pears",
"special_descr": "purple",
"child_name": "bob",
"child_descr": "opie"
},
"cafe": {
"chef": "herb",
"bio": "herbbio",
"image": "herbimage",
"special_name": "apple",
"special_descr": "mike",
"child_name": "Rob Davis",
"child_descr": "blue"
}
}
action.php
<?php
if (isset($_POST['submit'])) {
$data = json_decode(file_get_contents("data.txt"), true); // true for assoc
$data[$_POST['restaurant']] = array(
"chef" => $_POST['chef'],
"bio" => $_POST['bio'],
"image" => $_POST['image'],
"special_name" => $_POST['special_name'],
"special_descr" => $_POST['special_descr'],
"child_name" => $_POST['child_name'],
"child_descr" => $_POST['child_descr']
);
$newData = json_encode($data);
file_put_contents("data.txt", $newData);
}
?>
load.php
<?php
$data = json_decode(file_get_contents("data.txt"), true); // true for assoc
foreach($data as $k => $v) {
echo "<p>" . PHP_EOL;
echo "Restaurant " . $k . "is" . $v . "<br />" . PHP_EOL;
echo "Chef: " . $v['chef'] . "<br />" . PHP_EOL;
echo "bio: " . $v['bio'] . "<br />" . PHP_EOL;
echo "image: " . $v['image'] . "<br />" . PHP_EOL;
echo "Name: " . $v['special_name'] . "<br />" . PHP_EOL;
echo "Description: " . $v['special_descr'] . "<br />" . PHP_EOL;
echo "Children: " . $v['child_name'] . "<br />" . PHP_EOL;
echo "Description: " . $v['child_descr'] . "<br />" . PHP_EOL;
echo "</p>" . PHP_EOL;
}
var_dump($let['chef']);
?>
<?php
$myfile = fopen("data.txt", "r") or die("Unable to open file!");
echo fread( $myfile,filesize("data.txt"));
fclose($myfile);
?>
Это ответ:
Restaurant letisArray
Chef: tema
bio: temabio
image: temaimage
Name: pears
Description: purple
Children: bob
Description: opie
Restaurant cafeisArray
Chef: herb
bio: herbbio
image: herbimage
Name: apple
Description: mike
Children: Rob Davis
Description: blue
NULL {"let":{"chef":"tema","bio":"temabio","image":"temaimage","special_name":"pears","special_descr":"purple","child_name":"bob","child_descr":"opie"},"cafe":{"chef":"herb","bio":"herbbio","image":"herbimage","special_name":"apple","special_descr":"mike","child_name":"Rob Davis","child_descr":"blue"}}
Ответ гласит, что «let is Array», так почему я не могу извлечь информацию из него, как я должен бытьВ состоянии?
Все они ответили NULL - я попробовал их внутри функции, вне функции, на разных страницах и т. д. Я попытался использовать второй цикл foreach внутри первого цикла, чтобы вытащить информацию, но яникогда не заставлял его работать.
var_dump($let['chef']);
var_dump($let[ "Chef:" "chef"]);
echo($let["bio"]);
echo "Chef: " . $let['chef'] . "<br />" . PHP_EOL;
var_dump($cafe);
print_r ($myfile);
echo $myfile($let["bio"]);;
echo "bio: " . $let['bio'] . "<br />" . PHP_EOL;
echo "Chef: " . $let['chef'] . "<br />" . PHP_EOL;
var_dump($restaurant['let']);
var_dump($restaurant["let"]["chef"])
Если кто-нибудь может сказать мне, как вытащить каждое значение отдельно, это было бы здорово.Я хочу иметь возможность печатать значение ключа "chef" из массива $ let и так далее.- Я пробовал это в течение 2 дней, и я не знаю, что еще попробовать.Конечно, я очень плохо знаком с программированием и совсем не знаю PHP, но, похоже, все должно быть очень просто.У вас есть массив - вы вызываете значения, используя имя массива и правильный ключ индекса?