"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحويل سلسلة إلى مصفوفة ترابطية باستخدام وظائف المصفوفة؟

كيفية تحويل سلسلة إلى مصفوفة ترابطية باستخدام وظائف المصفوفة؟

تم النشر بتاريخ 2024-11-07
تصفح:304

How to Convert a String to an Associative Array Using Array Functions?

تحويل السلسلة إلى مصفوفة ترابطية باستخدام وظائف المصفوفة

في PHP، غالبًا ما تنشأ الحاجة إلى تحويل سلسلة تحتوي على أزواج قيمة المفتاح إلى سلسلة مجموعة النقابي. خذ بعين الاعتبار سلسلة مثل "1-350,9-390.99"، حيث يتم فصل كل عنصر بواصلة وفاصلة. الهدف هو إنشاء مصفوفة ترابطية حيث يصبح الرقم الأول في كل عنصر هو المفتاح، ويصبح الرقم الثاني هو القيمة.

يمكن تحقيق هذا التحويل بكفاءة باستخدام وظائف المصفوفة المضمنة في PHP. تتضمن الخطوة الأولى تقسيم السلسلة إلى مصفوفات فردية باستخدام preg_split("/[-,]/", $input)، الذي يفصل بين الأرقام بالواصلات والفواصل. والنتيجة هي قائمة من المصفوفات الفرعية، تحتوي كل منها على مفتاح وقيمة.

بعد ذلك، نستخدم array_chunk لتجميع هذه المصفوفات الفرعية في قطعتين، مما يضمن أن يحمل عنصر واحد المفتاح والآخر يحتفظ به. القيمة. أخيرًا، يتم استخدام array_column لاستخراج المفاتيح والقيم في صفائف منفصلة. يؤدي استخدام array_combine في هذه المصفوفات إلى الحصول على المصفوفة الترابطية المطلوبة.

Code Snippet:

$input  = '1-350,9-390.99';

$chunks = array_chunk(preg_split('/[-,]/', $input), 2);
$result = array_combine(array_column($chunks, 0), array_column($chunks, 1));

الإخراج:

صفيف ( [1] => 350 [9] => 390.99 )
Array
(
    [1] => 350
    [9] => 390.99
)
تقوم هذه الطريقة بتحويل السلسلة بشكل فعال إلى مصفوفة ترابطية دون اللجوء إلى الحلقات، مما يعرض قوة وظائف المصفوفة في PHP.

بيان الافراج أعيد طبع هذه المقالة على: 1729549336 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3