تالار گفتمان nCIS.ir

نسخه‌ی کامل: لینک کردن نام به پروفایل
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
من از یک فایل 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 خاص چیه و بتونیم راهنمایی کنیم.
بله استاد حق با شماست  Heart
عذر میخوام
{
 "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]
استاد خیلی ممنون مشکلم حل شد  Heart Heart Heart

استاد ببخشید این سوال آخرمه 

اگر فقط بخوام فقط یوزر های 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>';
}