مجموعة سلسلة بالتنسيق التالي؟
سؤال
وكيف يمكنني مجموعة سلسلة، في الشكل الذي $ _POST لا ... نوع، وأيضا لدي هذا النوع من تنسيق القادمة في:
101=1&2020=2&303=3
و(أكان بك يتساءل، في نتيجة مسج قابل للفرز تسلسل ... أريد أن تشغيل عبارة SQL لتحديث حقل مع الجانب الأيمن من علامة =، حيث في الجانب الأيسر من علامة المساواة؟ وأنا أعلم أن SQL لهذا، ولكن أردت وضعها في شكل أن أتمكن من استخدام foreach ($ VAR من $ الرئيسية قيمة => $) وبناء عبارة SQL من ذلك .. وأنا لا أعرف كم عدد 101 = 1 سوف يكون هناك؟
وأريد فقط أن تنفجر هذه بطريقة $ مفتاح = 101 $ وقيمة = 1
ويبدو مربكا.) وبفضل ذلك الكثير في مرحلة متقدمة !!
المحلول
$input = "101=1&2020=2&303=3";
$output = array();
$exp = explode('&',$input);
foreach($exp as $e){
$pair = explode("=",$e);
$output[$pair[0]] = $pair[1];
}
نصائح أخرى
parse_str
وظيفة.
وانها ليست اسم الوظيفة الأكثر بديهية في PHP ولكن وظيفة كنت تبحث عن <لأ href = "http://us.php.net/manual/en/function.parse-str.php" يختلط = "نوفولو noreferrer"> parse_str () . يمكنك استخدام مثل هذا:
$myArray = array();
parse_str('101=1&2020=2&303=3', $myArray);
print_r($myArray);
واحد حل سريع وقذرة:
<?php
$str = "101=1&2020=2&303=3";
$VAR = array();
foreach(explode('&', $str) AS $pair)
{
list($key, $value) = each(explode('=', $pair));
$VAR[$key] = $value;
}
?>
parse_str($query_string, $array_to_hold_values);
وتنفجر على وللحصول على مجموعة التي تحتوي على [101 = 1، 2020 = 2، 303 = 3] ثم لكل عنصر، والانقسام على = ودفع الزوج مفتاح / قيمة على مجموعة جديدة.