مسح جميع عناصر المصفوفة في البله يعود أرقام بدلا من القيم
سؤال
ونظرا لالدالة التالية:
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]);
للحصول على القيم.
لا تنتمي إلى StackOverflow