سؤال

وكيف يمكنني مجموعة سلسلة، في الشكل الذي $ _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] ثم لكل عنصر، والانقسام على = ودفع الزوج مفتاح / قيمة على مجموعة جديدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top