سلام
دوستان من آرایه خودم رو به صورت serilazie شده داخل یک فایل ریختم...
چطوری میتونم اسم و لینک کاربر و عکس رو در قالب html نمایش بدم؟ با foreach امکان پذیره؟
سرچ کردم چیزی متوجه نشدم
i: 8;a: 3: {
i: 1036454;a: 3: {
s: 4: "name";s: 6: "Amir";s: 4: "link";s: 64: "member.php?111111";s: 5: "image";s: 82: "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1036454&dateline=1288196825";
}
i: 1169291;a: 3: {
s: 4: "name";s: 9: "ALI";s: 4: "link";s: 67: "member.php?2222222";s: 5: "image";s: 97: "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1169291&dateline=1488824926&type=thumb";
}
i: 1414814;a: 3: {
s: 4: "name";s: 11: "Hossein";s: 4: "link";s: 69: "member.php?33333";s: 5: "image";s: 97: "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1414814&dateline=1492708694&type=thumb";
}
}
باید ابتدا unserialize کنید و بعد مثل همون شئ اصلی باهاش کار کنین:
$original = unserialize($serialized);
استاد به این صورت درسته ؟
$original = unserialize($serialized);
$serialized = file_get_contents('test.json');
$values = unserialize($serialized);
$groups = [];
foreach ($values as $key => $value) {
$groups[$key] = [];
foreach($value as $item) {
$groups[$key][] = $item->name;
$groups[$key][] = $item->link;
$groups[$key][] = $item->image;
}
}
foreach($groups['admin'] as $name) {
echo $name ;
foreach($groups['admin'] as $link) {
echo $link;
foreach($groups['admin'] as $image) {
echo $image;
}
?>
استاد این خطا رو میده
Parse error: syntax error, unexpected end of file in C:xampphtdocstestamir.php on line 20
اگه یکم مرتب بنویسین متوجه میشین که چرا خطا میگیرین. دو تا آکولاد بسته کم گذاشته بودین:
$original = unserialize($serialized);
$serialized = file_get_contents('test.json');
$values = unserialize($serialized);
$groups = [];
foreach ($values as $key => $value) {
$groups[$key] = [];
foreach($value as $item) {
$groups[$key][] = $item->name;
$groups[$key][] = $item->link;
$groups[$key][] = $item->image;
}
}
foreach($groups['admin'] as $name) {
echo $name;
foreach($groups['admin'] as $link) {
echo $link;
foreach($groups['admin'] as $image) {
echo $image;
}
}
}
ترجیحاً یکبار این دستور رو اجرا کنید:
echo '<pre>';
var_dump($values);
echo '</pre>';
و ببینید چه خروجی براتون نمایش داده میشه. اینطوری بهتر میتونین تصمیم بگیرین که چطور پیمایش کنید.
استاد خروجی به این صورت...
حالا باید به تریتب اعداد مقادیر آرایه های 7 و 8 رو بگیرم؟
[7]=>
array(5) {
[1482240]=>
array(3) {
["name"]=>
string(8) "Ali"
["link"]=>
string(66) "member.php?1111"
["image"]=>
string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1482240&dateline=1491896119&type=thumb"
}
[1344026]=>
array(3) {
["name"]=>
string(7) "Amir"
["link"]=>
string(65) "member.php?2222"
["image"]=>
string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1344026&dateline=1465020832&type=thumb"
}
[8]=>
array(3) {
[1036454]=>
array(3) {
["name"]=>
string(6) "hossein"
["link"]=>
string(64) "member.php?3333"
["image"]=>
string(82) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1036454&dateline=1288196825"
}
[1169291]=>
array(3) {
["name"]=>
string(9) "reza"
["link"]=>
string(67) "member.php?4444"
["image"]=>
string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1169291&dateline=1488824926&type=thumb"
}
[1414814]=>
array(3) {
["name"]=>
string(11) "hassan"
["link"]=>
string(69) "member.php?55555"
["image"]=>
string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1414814&dateline=1492708694&type=thumb"
}
}
foreach ($values as $items) {
foreach ($items as $index => $item) {
$groups[$index] = $item;
}
}
یا اگه میخواین اندیسها عددی بشه:
foreach ($values as $items) {
foreach ($items as $index => $item) {
$groups[$index] = array_values($item);
}
}
استاد کد زیر رو تست کردم
<?php
$serialized = file_get_contents('test.json');
$values = unserialize($serialized);
foreach ($values as $items) {
foreach ($items as $index => $item) {
$groups[$index] = $item;
echo $groups;
}
}
?>
تعداد زیادی این ارور را داد بهم
Notice: Array to string conversion in C:xampphtdocsamiramir.php on line 7
Array
Notice: Array to string conversion in C:xampphtdocsamiramir.php on line 7
Array
Notice: Array to string conversion in C:xampphtdocsamiramir.php on line 7
Array
.
.
.
.
.
.
محتوای test.json رو بگذارین تا بررسی کنم. خودتون با کمی دقت هم میتونین انجام بدین.
آرایه رو با print_r نمایش بدین نه echo !!!
$values = unserialize(file_get_contents('test.json'));
foreach ($values as $items) {
foreach ($items as $index => $item) {
$groups[$index] = array_values($item);
}
}
echo '<pre>' . print_r($groups, true) . '</pre>';