سلام
من از یک فایل json میخوام مقادیر name و link رو بگیرم و name رو لینک کنم به پروفایل کابران...
ولی کد رو اجرا میکنم یک اسم از اخرین گروه کاربری رو برمیگردونه نه از گروه admin2
<?php
$str = file_get_contents('test.json');
$values = json_decode($str);
$groups = [];
foreach ($values as $key => $value) {
$groups[$key] = [];
foreach($value as $items) {
$groups[$key][] = $item->name;
$groups[$key][] = $item->link;
}
}
foreach($groups['admin2'] as $name,$link) {
echo "<p><a href="http://test.com/forums/". $link . ""target="_blank">" . $name. "</a></p>";
}
?>
مشکل چیه؟
توی این قبیل سؤالات، خیلی خوب میشه اگه محتوای فایل رو هم بگذارین تا بفهمیم کد درست برای رسیدن به نتیجه با اون JSON خاص چیه و بتونیم راهنمایی کنیم.
بله استاد حق با شماست
عذر میخوام
{
"admin": {
"1": {
"name": "Amir",
"link": "member.php?1-Amir",
"image": "image.php?s=f39f15453d522ed5e4"
}
},
"admin2": {
"144": {
"name": "Ali",
"link": "member.php?144-Ali",
"image": "image.php?s=f39f15453d522ed5e7"
},
"268": {
"name": "Reza",
"link": "member.php?268-Reza",
"image": "image.php?s=f39f15453d522ed5e5"
}
}
}
به این کد دقت کنید:
<?php
$str = <<<EOT
{
"admin": {
"1": {
"name": "Amir",
"link": "member.php?1-Amir",
"image": "image.php?s=f39f15453d522ed5e4"
}
},
"admin2": {
"144": {
"name": "Ali",
"link": "member.php?144-Ali",
"image": "image.php?s=f39f15453d522ed5e7"
},
"268": {
"name": "Reza",
"link": "member.php?268-Reza",
"image": "image.php?s=f39f15453d522ed5e5"
}
}
}
EOT;
$json = json_decode($str);
foreach($json as $key => $value) {
echo '<h2>' . $key . '</h2>';
foreach($value as $index => $item) {
echo '<p><strong>' . $index . ' :</strong> <a href="' . $item->link . '">' . $item->name . '</a></p>';
}
echo '<hr />';
}
?>
این هم نمونهی خروجی تولیدشده:
[
attachment=548]
استاد خیلی ممنون مشکلم حل شد
استاد ببخشید این سوال آخرمه
اگر فقط بخوام فقط یوزر های admin2 رو برگردونم باید برای key بگم admin2
به این صورت میشه؟
$json = json_decode($str);
foreach($json as $key[admin2] => $value) {
echo '<h2>' . $key . '</h2>';
foreach($value as $index => $item) {
echo '<p><strong>' . $index . ' :</strong> <a href="' . $item->link . '">' . $item->name . '</a></p>';
}
echo '<hr />';
}
خیر. باید اینطوری بنویسید:
foreach($json->admin2 as $index => $item) {
echo '<p><strong>' . $index . ' :</strong> <a href="' . $item->link . '">' . $item->name . '</a></p>';
}