مسح جميع عناصر المصفوفة في البله يعود أرقام بدلا من القيم

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

  •  06-07-2019
  •  | 
  •  

سؤال

ونظرا لالدالة التالية:

function process_pipes(text)
{
    split(text,recs,"|");
    for (field in recs){
        printf ("|%s|\n", field)
    }
}

إذا دخل هو: 0987654321 | 57300 | ERROR رقم الحساب لم يتم العثور | GDUMARESQ | 0199 | 9 | N | 0 ||

لماذا أحصل على الأرقام أدناه بدلا من النص؟

|4|
|5|
|6|
|7|
|8|
|9|
|10|
|1|
|2|
|3|
هل كانت مفيدة؟

المحلول

وsplit يخلق recs مجموعة في التعليمات البرمجية، وrecs[1] == 0987654321، وما إلى ذلك.

وحلقة for (field in recs) يولد قائمة الفهارس، وليس عناصر المصفوفة.

وبالتالي، تحتاج:

function process_pipes(text)
{
    split(text,recs,"|");
    for (field in recs){
        printf ("|%s|\n", recs[field])
    }
}

نصائح أخرى

ولأن

for ... in 

ويتيح لك <م> مفاتيح . استخدام

printf("|%s|\n",recs[field]);

للحصول على القيم.

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