View Full Version : استخراج اطلاعات در فایل json
kiapmc
یک شنبه 12 فروردین 1403, 09:58 صبح
سلام دوستان یک مشکلی داشتم گر ممکن هست راهنمائی کنید
یک فایل داریم با پسنود json با اطلاعات زیر
{
"7160": "bb",
"2440": aa,
"0481": aa,
"6986": qq,
"1086": qq,
"1946": bb,
"3976": aa
}
اگر بخواهم در این فایل کل aa ها رو در بیارم چی کار کنم و همه را یکجا زیر هم چاپ کنم به شکل ذیل
2440
0481
3976
mazoolagh
یک شنبه 12 فروردین 1403, 17:15 عصر
سلام و نوروز شما پیروز
مشخص نکردین که در کدوم بخش از کار مشکل دارین:
- خوندن فایل json
- دیکد کردنش
- یا پردازش
پس فرض رو بر این میذارم که همه اش هست.
البته فرمت این دیتا که پیوست کردین نادرست هست و همه مقادیر string باید درون کوتیشن " باشن.
- خوندن فایل json:
با فرض این که اسم فایل شما x.json و در کنار فایل php شما باشه
$JSON = file_get_contents('x.json');
- برای دیکد کردن استرینگ json و ریختن دیتا در یک array :
$Data = json_decode($JSON , true);
- حالا در یک حلقه برای هر آیتم مقدار دوم (value$) رو چک میکنین، و اگر برابر aa بود مقدار اول (key$) رو به خروجی میفرستین:
foreach ($Data as $key => $value) {
if ($value === "aa") {
print ("$key <br>");
}
};
این که اسم متغییرها رو key$ و value$ انتخاب کردیم فقط از بابت رسوندن مفهوم هست و میتونین هر اسمی (که مجاز باشه) انتخاب کنین.
mazoolagh
یک شنبه 12 فروردین 1403, 17:45 عصر
یک راه دیگه این هست که اول خود Data$ رو بر اساس مقادیر مورد نظر فیلتر کنین و در یک آرایه دیگه (اینجا AA$) بریزین:
$AA = array_filter($Data, function($item) {
return ($item === "aa");
});
و بعد کلیدهای اون رو در یک آرایه دیگه (اینجا KEYS$) بریزین،
و اون رو چاپ کنین:
$KEYS = array_keys($AA);
foreach ($KEYS as $k) {
print ("$k <br>");
};
=====
البته من php کار نمیکنم و روی سیستم هم ندارم و دانش من در این زمینه زنگ زده است،
شاید راه های تمیزتر و بهتری هم باشه.
=====
در دستورهای print یک تگ br هم هست که ادیتور انجمن اون رو نشون نمیده!
kiapmc
دوشنبه 13 فروردین 1403, 19:32 عصر
یک راه دیگه این هست که اول خود Data$ رو بر اساس مقادیر مورد نظر فیلتر کنین و در یک آرایه دیگه (اینجا AA$) بریزین:
$AA = array_filter($Data, function($item) {
return ($item === "aa");
});
و بعد کلیدهای اون رو در یک آرایه دیگه (اینجا KEYS$) بریزین،
و اون رو چاپ کنین:
$KEYS = array_keys($AA);
foreach ($KEYS as $k) {
print ("$k <br>");
};
=====
البته من php کار نمیکنم و روی سیستم هم ندارم و دانش من در این زمینه زنگ زده است،
شاید راه های تمیزتر و بهتری هم باشه.
=====
در دستورهای print یک تگ br هم هست که ادیتور انجمن اون رو نشون نمیده!
واقعا ممنون دستتون درد نکنه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.