الدالة من المصفوفة إلى السلسلة. برمجة PHP فعالة: المصفوفات إلى السلاسل

تم حظر JavaScript في متصفحك. الرجاء تفعيل جافا سكريبت ليعمل الموقع!

ينفجر داخليا، ينهار للداخل

(بي إتش بي 3، بي إتش بي 4، بي إتش بي 5)

ينفجر داخليا، ينهار للداخل- يسلسل عناصر المصفوفة في سلسلة (يحول المصفوفة إلى سلسلة)

وصف

خيط ينفجر داخليا، ينهار للداخل(غراء السلسلة، قطع المصفوفة)

تُرجع السلسلة التي تم الحصول عليها عن طريق تسلسل تمثيلات السلسلة لعناصر مصفوفة القطع، وإدراج سلسلة لاصقة بين العناصر المتجاورة.

مثال 1: مثال الاستخدام ينفجر داخليا، ينهار للداخل()

تعليق:لأسباب تاريخية، وظائف ينفجر داخليا، ينهار للداخل()يمكنك تمرير الوسائط بأي ترتيب، ولكن للتوحيد مع الوظيفة ينفجر()يجب استخدام ترتيب الوسيطة الموثقة.

تعليق:منذ الإصدار 4.3.0، أصبحت وسيطة وظيفة الغراء ينفجر داخليا، ينهار للداخل()اختياري ويتم تعيينه افتراضيًا على السلسلة الفارغة (""). للتوافق مع الإصدارات السابقة، يوصى دائمًا بتمرير كلا الوسيطتين.

تعليق:هذه الوظيفة آمنة لمعالجة البيانات في شكل ثنائي.

تجمع هذه الوظيفة قيم عناصر المصفوفة في سلسلة. لدمج مفاتيح عناصر المصفوفة، استخدم الكود التالي:

php ينفجر للصفائف المتداخلة

إذا قمت بتمرير مصفوفة متعددة الأبعاد للانهيار، فسوف تتلقى خطأ "تحويل المصفوفة إلى سلسلة". لتجنب هذا الخطأ، استخدم المعادل التالي للدالة المنفجرة:

الدالة multi_implode($glue, $array) ( $_array=array(); foreach($array as $val) $_array = is_array($val)? multi_implode($glue, $val) : $val; إرجاع Iplode($ الغراء، $_array)؛

انظر أيضًا أوصاف الوظائف

إذا كنت بحاجة إلى تحويل مصفوفة PHP إلى سلسلة، فهناك العديد من الأدوات للقيام بذلك. يعتمد استخدام أداة معينة على أهدافك.

1. تنفجر () وظيفة

بمساعدتها، يمكنك "لصق" عناصر المصفوفة في سلسلة، من خلال أي فاصل. اقرأ المزيد: تنفجر
مثال:

صدى ينفجر("|"، array(1, 2, 3)); // سينتج السطر: 1|2|3

تحتوي هذه الوظيفة على خصم، Explode()، والذي، على العكس من ذلك، يقسم السلسلة عند المحدد إلى عناصر المصفوفة. اقرأ المزيد: انفجر

2. وظيفة التسلسل ().

المهمة الرئيسية للوظيفة هي تحويل المتغير (في حالتنا، مصفوفة) إلى حالة مناسبة للتخزين.
يتم استخدامه لحفظ مصفوفة في سلسلة ثم تحويلها مرة أخرى إلى مصفوفة. يمكنك حفظ الصفيف في ملف أو قاعدة بيانات، ثم استعادته في المرة التالية التي تقوم فيها بتشغيل البرنامج النصي.
اقرأ المزيد: تسلسل

$array = array("1" =>; "العنصر 1", "2"=> "العنصر 2", "3" => "العنصر 3"); $string = serialize($array); صدى سلسلة $؛ // سينتج السطر: a:3:(i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:"elem 3" ;)

ثم من هذا السطر، يمكنك الحصول على المصفوفة مرة أخرى:

$array = unserialize($string);

3. وظيفة json_encode()

إرجاع تمثيل JSON للبيانات. يمكنك أن تقرأ ما هو عليه.
في حالتنا، تشبه هذه الوظيفة التسلسل، ولكن يتم استخدام JSON بشكل أساسي لنقل البيانات. سيتعين عليك استخدام هذا التنسيق لتبادل البيانات مع جافا سكريبت في الواجهة الأمامية. مزيد من التفاصيل: json_encode

$array = array(1 => "one"، 2 => "two"،); $json = json_encode($array); صدى $json؛ // ("1": "واحد"، "2": "اثنان")

ستُرجع وظيفة رد الاتصال json_decode() كائنًا من النوع stdClass إذا كانت المعلمة الثانية للدالة خاطئة. أو سيُرجع مصفوفة ترابطية إذا تم تمرير true كمعلمة ثانية. التفاصيل هنا.

يعد تحويل البيانات من تمثيل إلى آخر آلية شائعة، وغالبًا ما تكون الوحيدة، لحل المشكلة. المصفوفة هي حالة بسيطة للكائن. السلسلة هي تمثيل طبيعي للمعلومات لنقلها أو معالجتها أو تخزينها.

الخبرة والدلالات المطبقة في PHP: المصفوفات والوظائف والهياكل النحوية تجعل من الممكن إنشاء حلول مثالية لمعالجة المعلومات كما يتم تقديمها.

المعلومات: الأحرف والسلاسل والبيانات

المعلومات في شكلها "الخالص" عبارة عن سلسلة من الأحرف أو الكلام أو سلسلة من الإشارات. تظهر السلاسل والمصفوفات والكائنات في البرمجة، وهي أشكال مختلفة من إنشاءات السلسلة الاصطناعية. الأرقام هي أيضًا سلاسل، ولكنها أرقام وليست رموزًا.

يتيح لك PHP تحويل سلسلة إلى مصفوفة بعدة طرق مختلفة. هناك وظيفتان خاصتان تقومان بذلك "بنفسهما":

  • $aArr = تنفجر("x", "string");
  • $aStr = Iplode("y", $aArr).

تبحث الوظيفة الأولى عن الحرف المحدد "x" وتقوم بتقسيم السلسلة "string" باستخدامه. يحتوي المصفوفة الناتجة على عدد العناصر (الأسطر) الموجودة بين الأحرف "x" بالضبط. قد لا يكون الرمز الفاصل بالضرورة هو الرمز الكلاسيكي:

  • فاصلة؛
  • نقطة؛
  • فاصلة منقوطة.

يمكنك تقسيم سلسلة عن طريق سلسلة فرعية أو عن طريق مجموعة خاصة من الأحرف.

طول السلسلة هو strlen() في PHP، وطول المصفوفة هو count(). في الحالة الأولى يتم حساب عدد الأحرف، وفي الحالة الثانية يتم حساب عدد العناصر. نظرًا لعدم تضمين الحرف المحدد في عناصر المصفوفة، فإن قيمة count() ستكون مساوية لعدد المحددات في السلسلة المحولة ناقص واحد.

في التحويل العكسي لـ PHP، يتم تحويل المصفوفات إلى سلسلة باستخدام حرف محدد (يمكن أن يكون فارغًا)، ويتم دمج جميع البيانات (الأرقام والتعبيرات المنطقية) في سلسلة واحدة. يمكن أن يكون عنصر المصفوفة مصفوفة أخرى، لكن يجب على المبرمج التعامل مع هذه الحالة على وجه التحديد. الدالة Iplode() بعيدة عن أن تكون متكررة.

في هذا المثال، لا توجد مشكلة في تحويل مصفوفات PHP إلى سلسلة نصية طالما لا يوجد مصفوفة أخرى بين عناصرها. عند تحويل العناصر الترابطية، يتم فقدان المعلومات الأساسية. وعلى وجه الخصوص، سيتم تجريد عنصري "البرقوق" و"الخوخ" من مفاتيحهما.

محددات البيانات والمفاتيح

لا تعتبر النقاط والفواصل والنقطات وما إلى ذلك بمثابة محددات. هذه حالة خاصة لفصل البيانات عن بعضها البعض. عند تحويل سلسلة في PHP، لن تعمل المصفوفة متعددة الأبعاد، ولن يكون للفهارس الترابطية مكان لتأتي منه.

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

على سبيل المثال، كانت هناك فقرة بها عدة جمل (فاصل "." - فترة)، عدة عبارات في الجملة (فواصل "،" - فاصلة، "؛" - فاصلة منقوطة و "." - فترة)، تحتوي العبارة على كلمات ( المحدد " " - مسافة، ""، - فاصلة، "؛" - فاصلة منقوطة و "."

مع هذا التفكيك في PHP، يمكن الحصول بسهولة على مصفوفة متعددة الأبعاد، لكن الخوارزمية ستكون قبيحة للغاية: يزداد عدد الفواصل، ويتم ضمان عدم وجود اتصال بين الفقرات المجاورة لضمان تكرار الجمل والعبارات والكلمات.

من خلال تحليل السلاسل، يمكنك على الفور تحويل تسلسل الأرقام إلى أرقام، والقيم المنطقية إلى صحيح وخطأ. ولكن على وجه الخصوص، لن تظهر المعلومات الأساسية، لأن المفتاح هو المعنى، ويمكن إنشاء فهرس رقمي فقط تلقائيًا.

فواصل معقدة

غالبًا ما يتم استخدام طباعة مصفوفة PHP إلى سلسلة لأغراض مفيدة. تتم كتابة ملف التكوين بشكل تقليدي سطرًا تلو الآخر، مع رمز يساوي أو نقطتين يفصلان الاسم عن القيمة.

باستخدام هذا الحل، يتم إخراج المصفوفة في PHP في ملف، ويتم الحصول على تقسيم السلسلة تلقائيًا، ومع التعرف العكسي، يمكن الحصول على المصفوفات الترابطية بسهولة.

من خلال قراءة الملف يحصل المبرمج على الأسطر، ومن خلال كسر كل سطر بـ "=" أو "": يحصل على الاسم وقيمته. معالجة شائعة جدًا، على الرغم من أنها أكثر حداثة لاستخدام تدوين XML على أساس بسيط أنه بالإضافة إلى الأسماء والقيم، يمكن تخزين البيانات الإضافية واستعادتها، على سبيل المثال، السمات المتغيرة.

في المثال الذي يحتوي على فقرات (على سبيل المثال، نص طبيعي لإنشاء قاموس أو نتيجة التحليل لإنشاء عينة بيانات)، المهم ليس الإجراء المحدد لتحويل سلسلة إلى مصفوفة، بل الحل الشامل لجميع الفقرات أو كتل من المعلومات.

عادةً ما تتطلب مثل هذه المهمة حلاً عكسيًا، عندما يلزم استخدام "مجموعة" البيانات التي تم إنشاؤها للبحث عن المعلومات الموجودة فيها أو تجميعها مرة أخرى في سلسلة.

تفكيك وإعادة تجميع السلاسل – التحقق من البيانات

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

سيؤدي الإجراء العكسي إلى إنتاج السلسلة المصدر الصحيحة. إذا قمت بمقارنة كمية معلومات المصدر ونتيجة التحويل العكسي، فيمكنك استخلاص استنتاجات حول مكان حدوث الأخطاء أو فقدان البيانات. في PHP، يمكن أن يسمح لنا طول المصفوفة في سياق الطول الأصلي للسلسلة باستخلاص الاستنتاجات الضرورية.

علامات الوقت والتاريخ والحدث

في تطوير المشاريع المهمة، عند إنشاء كائنات تحكم، على سبيل المثال، الوقت أو الأحداث، يكون الصف أحد تمثيلات البيانات، والمصفوفة هي تمثيل آخر. ولكن في التطبيق فهي متكافئة.

عندما يكون من الضروري إجراء حسابات رياضية أو منطقية، يقوم المبرمج بمعالجة المصفوفة؛ وعندما يكون من الضروري تخزين البيانات، فإنه يستخدم إصدار السلسلة.

الوصول إلى فهارس حقول قاعدة البيانات هو ممارسة حقيقية للعمل المشترك بين MySQL وPHP، المصفوفات في صف واحد = فهرس واحد في صفوف عدة جداول قاعدة بيانات. إذا كانت قاعدة البيانات تحتوي على عشرات الجداول، وفي كل جدول يمكن تحديد الصفوف من خلال مجموعة من الأسماء (القيم) في مجموعة معينة، ثم بعد إنشاء صفائف الوصول إلى الصف، يمكنك لاحقًا الوصول إليها باستخدام خوارزمية تكوين الفهرس، وليس من خلال البحث في قاعدة البيانات .

يمكن اعتبار تحويل المصفوفة إلى سلسلة بمثابة خوارزمية لتشكيل الفهرس المطلوب، بينما يتم تشكيل محتويات المصفوفة تحت سيطرة أحداث أو إجراءات مستخدم مختلفة تمامًا.

دمج المصفوفات

تتيح لك وظائف PHP التعامل مع المصفوفات بحرية. ولكن تنشأ دائمًا مشكلات عند تحديد بيانات فريدة أو العثور على بيانات في مصفوفة.

يتم حل المشكلة الأولى بشكل متكرر: يتم تكرار مصفوفة (أو عدة مصفوفات) وتشكيل سلسلة من القيم الفريدة - وهو حل واضح، ولكنه ليس الأكثر فعالية.

يعد البحث عن البيانات في المصفوفة أيضًا بمثابة دورة، وإذا كان هناك الكثير من العناصر، فستكون الدورة طويلة جدًا وستستغرق وقتًا ملحوظًا. من الممكن إرسال مصفوفة إلى سلسلة واستخدام الدالة strpos()‎ للعثور على تكرار للعنصر المطلوب، لكن هذا سيطرح مشكلة اكتشاف حدث خاطئ.

على سبيل المثال، تم البحث عن كلمة "صينية"، وتم العثور على واردها في كلمة "مطرقة". يمكنك التخلص من مثل هذه الأخطاء إذا قمت بدمج كافة عناصر المصفوفة في سلسلة باستخدام فاصل خاص، مما سيتجنب الغموض.

إذا كان السطر يحتوي على "[صينية]" و"[مطرقة]"، فلن تكون هناك مشاكل في البحث.

لكن ليس هناك ما يضمن أن الدالة strpos()‎ ستعمل بشكل أسرع من تكرار الحلقة فوق عناصر المصفوفة، عند وجود كميات حقيقية من البيانات.

الحل الأفضل هو أن تقوم المصفوفة أو السلسلة بالشيء الصحيح من تلقاء نفسها. إذا قمنا بتعقيد المصفوفات وتبسيط السلاسل إلى حد ما، لأن الأولى هي حالة خاصة للكائن، والأخيرة عبارة عن تسلسل تقليدي، فسيقوم الجميع بعمل ما يريدون.

في الوقت المناسب، يكون الكائن عبارة عن مصفوفة، وعندما تكون هناك حاجة إلى سلسلة، ستكون سلسلة. في هذه الحالة، ليس من الضروري على الإطلاق وجود مصفوفة وسلسلة في الكائن في نفس الوقت. يمكنك إنشاء بنية بيانات فريدة مع إمكانية الوصول السريع. ووضع منطق "المصفوفة" و"السلسلة" في أساليب الكائن.

يعمل النهج الموجه للكائنات على تبسيط حل العديد من مشكلات معالجة معلومات السلسلة؛ فهو يسمح لك بتجنب التركيز على المصفوفات والحلقات ووظيفة معالجة السلسلة في PHP نفسها.

كل من السلاسل والمصفوفات هي المعنى الحقيقي للواقع والتطبيق والمهمة. لا توجد مثل هذه المهمة - إرسال المصفوفات إلى سلاسل في PHP. لكن هناك مهمة الحصول على فقرة (جملة، عبارة، كلمة، رقم...) بناء على النتائج التي تم الحصول عليها في الخوارزمية السابقة.

الخوارزمية السابقة تحمل معنى، والتعبير الدقيق لهذا المعنى موجود في المصفوفة. المرحلة التالية من الخوارزمية هي تحويل المعنى إلى تمثيل آخر، مناسب لمزيد من المعالجة أو التطبيق.

من خلال النظر إلى الخوارزمية باعتبارها ديناميكيات المعنى وتحويل البيانات، فمن الممكن تشكيل تحويلات موثوقة ومفهومة وفعالة.

PHP، باعتبارها لغة برمجة حديثة، توفر القدرة على معالجة البيانات، والتي يمكن تحديد نوعها في وقت الاستخدام. يمكن أن يتغير نوع البيانات أثناء تنفيذ البرنامج.

سلاسل الأحرف هي نوع البيانات الوحيد الذي يتم إرسال البيانات من الأنواع الأخرى إليه بشكل طبيعي، وذلك لسبب بسيط وهو أن أي بيانات معينة تكون دائمًا عبارة عن سلسلة من الأحرف.

المصفوفات في PHP

بالإضافة إلى المتغيرات العادية، توفر لغة PHP للمبرمج بناء جملة ووظائف للعمل مع المصفوفات. بالإضافة إلى المصفوفات العادية التي توفر الوصول إلى عناصرها عن طريق المفتاح (رقم من 0 إلى عدد العناصر)، يمكنك استخدام المصفوفات الترابطية. وفي الحالة الأخيرة، يمكن تنفيذ الوصول عن طريق فهرس رقمي (يتم تعيينه تلقائيًا) وعن طريق مفتاح يحدده المبرمج.

توفر لغة PHP القدرة على تبديل المؤشرات والقيم، وهو أمر منطقي نظرًا لأن المفتاح ليس رسميًا أكثر صرامة من القيمة، ولكن يجب عليك استخدامه بحذر. لفترة طويلة، كانت تقاليد البرمجة جذابة لأحرف الأبجدية اللاتينية. السيريلية، كقاعدة عامة، تجلب معها مشكلة الترميزات. يجب ألا تسيء استخدام إمكانيات اللغة عندما تحتاج إلى تعليمات برمجية عملية وآمنة.

خيار الفهرس الأمثل هو عبارة ذات معنى باللغة الإنجليزية، ويفضل أن تكون بدون مسافات. من الرائع أن يعلن بناء جملة PHP عن "الحرية" للمفاتيح، ولكن من الأفضل أن تثق في تجربتك الخاصة وتركز على التعليمات البرمجية الآمنة.

الميزة الأكثر إثارة للاهتمام والعملية في حل PHP "المصفوفات إلى السلسلة" هي إمكانية التحويل المتبادل المكافئ.

PHP: المصفوفات والسلاسل

وظيفة PHP "المصفوفات إلى السلسلة": $cLine = Iplode("/ ", $aStyle) تنتج سلسلة أحرف لجميع عناصر المصفوفة $aStyle، مفصولة بالحرف "/". إذا قمت بتحديد " "، فسيتم دمج جميع العناصر في تسلسل واحد مستمر من الأحرف.

تقوم الدالة العكسية $aStyle = انفجار("/"، $cLine) بإنشاء مصفوفة من كافة الأسطر المفصولة بالحرف "/".

عند استخدام الدالة Explode()، فمن المستحسن، ولكن ليس من الضروري، التحقق من وجود الحرف المحدد المطلوب في السلسلة المصدر.

يمكنك أيضًا إخراج المصفوفات إلى سلسلة في PHP باستخدام وسائل أكثر إنسانية ويمكن التحكم فيها، على سبيل المثال، في حلقة for، while، إضافة قيم عناصر المصفوفة إلى متغير سلسلة باستخدام عامل التعيين: ".=" أو عامل التشغيل "."، الذي يسمح بعملية تشكيل سلاسل التحويل الناتجة (معالجة كل عنصر).

PHP: طباعة المصفوفة على السلسلة عبر الكائنات

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

سيتم كتابة (قراءة) كل منها بشكل مختلف، ولكن لن يهم بالضبط كيفية تنفيذ حل PHP "المصفوفات إلى السلسلة". تحمل الأشياء في جوهرها معنى معينًا، ولها هياكل مختلفة وأساليب مختلفة. مثال مع وظيفتين - خاص. عند إنشاء مثل هذه الآلية في PHP، سيتم وضع المصفوفات في سلسلة بشكل مختلف في كل حالة محددة.

وهذا يفتح الكثير من الاحتمالات. يحتوي أحد الكائنات على مصفوفتين، والآخر يحتوي على عشرين، والسلف المشترك (عادةً ما يكون الأول مجردًا) ليس له أي شيء على الإطلاق. باستخدام أساليب السلف المشترك، لا داعي للقلق بشأن عدم كتابة شيء ما أو قراءته أو معالجته أو عرضه.

بفضل الوراثة، بغض النظر عن الشكل المستخدم في أي مكان في البرنامج، يمكن تمثيله كسلسلة وتمريره مرة أخرى إلى كائن هذا الشكل المحدد.

مرحبًا، درسنا بالأمس كيف يمكنك تقسيم سلسلة والحصول على مصفوفة منها. أوجه انتباهكم اليوم إلى الوظيفة المعاكسة التي يمكننا استخدامها تحويل المصفوفة إلى سلسلة. هذا يسمى وظيفة تنفجر. مبدأ تشغيل هذه الوظيفة مشابه للمبدأ السابق، لكننا سننظر إليه باستخدام مثال:

صفيف $ = مجموعة مصفوفة( "اسمي دينيس") ;
سلسلة $ = تنفجر ( " "، مصفوفة $);
صدى صوت سلسلة $;
?>

لقد أنشأنا مصفوفة بثلاثة عناصر، وباستخدام تنفجر وظائفحولتها إلى سلسلة. يمكن أن تأخذ هذه الوظيفة معلمتين. الأول اختياري ويعني ما سيتم تطبيقه بين عناصر المصفوفة. إذا لم يتم تحديد هذه المعلمة، فسيتم فصل عناصر المصفوفة بمسافة بشكل افتراضي. وتحدد المعلمة الثانية المصفوفة نفسها، والتي سيتم تحويلها إلى سلسلة. هذه هي جميع المعلمات التي تدعمها الوظيفة قيد الدراسة. نتيجة لتنفيذ الوظيفة، سوف تتلقى السلسلة (اسمي دينيس). ولو حددنا فاصلة كفاصل لكانت النتيجة (اسمي دينيس). أعتقد أنه لم تكن هناك مشاكل في تعلم هذه الوظيفة، ويمكنك استخدامها بنفسك متى إنشاء مواقع الويب الخاصة بك. بهذا نختتم هذه المقالة، كما ترون، كانت صغيرة الحجم جدًا، ولكنها مهمة جدًا من الناحية العملية. نراكم قريباً، حظاً موفقاً في تعلم لغات البرمجة!