باستخدام مجموعة كمفتاح إلى صفيف ثانية في Smarty (PHP)

StackOverflow https://stackoverflow.com/questions/952821

  •  11-09-2019
  •  | 
  •  

سؤال

لدي حلقتان يعملان في التعليمات البرمجية الخاصة بي، أريد استخدام عنصر من صفيف كمفتاح في صفيف ثانية، لكنني غير متأكد من كيفية القيام بذلك مع Smarty.

"$dateAndUserForEdit.$key.edit_id"يحتوي على عدد صحيح (سحبت من DB)

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

{foreach from=$historyOfRepair.9 key=key item=i}

رمز الزائفة عن نوع الشيء الذي أحاول عليه هو:

{foreach from=$historyOfRepair.{$dateAndUserForEdit.$key.edit_id} key=key item=i}

ولكن بالطبع، هذا لا يعمل! هل يمكن لأي شخص؟

هل كانت مفيدة؟

المحلول

قد يعمل شيء مثل Next (لا يمكن اختباره حاليا):

{assign var=edit_id value=$dateAndUserForEdit.$key.edit_id}
{foreach from=$historyOfRepair.$edit_id key=key item=i}

نصائح أخرى

لا أعرف إذا كانت هذه حاجة إلى خدعة للإصدارات القديمة، ولكن يمكنك (كما أؤمن ببعض الوقت الآن) القيام بذلك:

بشرط:

{$someArray.someKey=9}
{$otherArray.9=$someValue}

مقابل:

{$otherArray[$someARray.$someKey]=$someValue}

أنا أعلم هنا فقط لأنه لم يعطيك أحد على أي نصيحة حتى الآن ... لم أستخدم أبدا Smarty لأنني دائما جعلت أنظمتي القسيمة الخاصة بي (لذلك قد أكون جاهلا هنا ونصيري عديم الفائدة) ...

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

كنت أتفق مع arvo. سترغب في تعيين المعرف إلى متغير مؤقت بحيث يمكن استخدامه كحل بديل في حلقة Foreach. لاحظ أنه في رمز المثال، سيتم استبدال قيمة مفتاح $ بمفتاح العنصر الحالي من صفيف $ HouseOfRepair. خلاف ذلك يعمل (تم اختباره أيضا :)).

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