رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمایش مقادیر آرایه (حل شد)
#1
سلام وقتتون بخیر.
یه کمکی برای یه کد میخواستم.
من یه خروجی دارم به این صورت:
 
Array ( [0] => IE 9 [1] => IE 10 [2] => IE 11 ) 

 Array ( [0] => Bootstrap 2.3.x [1] => Bootstrap 2.2.2 [2] => Bootstrap 2.2.1 [3] => Bootstrap 2.2.0 )

 که ممکن تعداد این آرایه ها کم یا زیاد بشه.حالا من میخوام مقدارهای هر آرایه رو جدا جدا بگیرم و نمایش بدم.

 ممنون
پاسخ
تشکر شده توسط:
#2
خوب برای هر کدوم یه foreach بزنید و داخلش مقدار رو نمایش بدین. مشکل کجاست دقیقاً؟
پاسخ
تشکر شده توسط:
#3
مشکلم اینجاست که این یه خروجیه نه دو تا خروجی.هر بار ممکنه تعداد این آرایه ها متفاوت باشه.البته هر بار تعداد آرایه مشخص هست.باز هم این مشکل با foreach حل میشه؟
ممنون
پاسخ
تشکر شده توسط:
#4
بله میتونید. یعنی شما یه آرایه دارین که هر عنصرش باز خودش یه آرایه است؟
پاسخ
تشکر شده توسط:
#5
آره foreach کارش همینه. هر تعداد عناصر آرایه داشته باشید رو براتون مقادیرشو نشون میده.
پاسخ
تشکر شده توسط:
#6
foreach همه مقادیر و نشون میده ولی من میخوام مقدار آرایه اول و داخل یه فیلد دیتابیس ذخیره کنم آرایه دوم رو داخل یه فیلد دیگه و تا آخر به همین صورت
پاسخ
تشکر شده توسط:
#7
میتونی شرط بذاری.
foreach($arr as $key => $value){
if($key==0){
$dbField1= $value;
}
// بقیه شرطها و دستورات
}
پاسخ
تشکر شده توسط:
#8
(02-04-1394، 02:56 ب.ظ)abdollah110110 نوشته: میتونید براش شرط بذارین.
foreac($arr as $key => $value){
if($key==0){
$dbField1= $valye;
}
// بقیه شرطها و دستورات
}

این کد مربوط به یه فرم ساز هست.توی هر فرمی یه تعداد خاص از این آرایه ها هست.به همین خاطر نمیتونم دستی ۰ و ۱ و ... بگذارم.
پاسخ
تشکر شده توسط:
#9
خوب حتماً که نباید توی foreach نشون بدین. میتونید ذخیره کنید. اگه کدتون رو بگذارین بهتر میشه راهنمایی کرد. الان نگفتین این آرایه ها که گذاشتین، خودشون توی یه آرایه دیگه قرار دارن یا مستقل از همدیگه هستن؟
پاسخ
تشکر شده توسط:
#10
این یه بخش از کدم هست.آرایه ها مستقل هستن.
 $count_checkbox = COUNT(checkbox);
$count_select2 = COUNT(select2);
while($element_row = $DB->Row($element_rs)){
if($element_row['element_type']=='checkbox'){
for($i=0;$i<$count_checkbox;$i++){
$field .= 'element_'.$element_row['element_id'].'_'.$i.',';
$value .= '"'.$_POST['element_'.$element_row['element_id'].'_'.$i].'",';
}
}
     elseif($element_row['element_type']=='select2'){
       $mul_val_string = serialize($_POST['element_'.$element_row['element_id']]);
       $rr = unserialize($mul_val_string);
       print_r($rr);//خروجی که گذاشتم از این خط بدست میاد
       $value .= ?;
       $field .= ?;
     }
else{ 
$field .= 'element_'.$element_row['element_id'].',';
$value .= '"'.$_POST['element_'.$element_row['element_id']].'",';
}
}

   $fields = rtrim($field,',');
   $values = rtrim($value,',');

$id = $DB->Insert('forms_'.$form_id,$fields.',time',$values.','.time(),true);
پاسخ
تشکر شده توسط:
#11
خروجی print_r رو دقیقاً از توی View Source کپی کنید و اینجا بگذارین. یه چیزی این وسط کمه.
پاسخ
تشکر شده توسط:
#12
کد:
Array
(
    [0] => IE 9
    [1] => IE 10
    [2] => IE 11
    [3] => Mozilla
)
Array
(
    [0] => Bootstrap 2.3.x
    [1] => Bootstrap 2.2.2
    [2] => Bootstrap 2.2.1
    [3] => Bootstrap 2.2.0
)
پاسخ
تشکر شده توسط:
#13
این دستور رو قبل از switch بگذارین ببینیم چی چاپ میشه:
print_r($element_row);

دنبال یه راهی هستم که بشه آرایه اول از دوم رو تشخیص داد. الان دوتا آرایه معمولی هستن و نمیشه بگیم اگه اولی بود فلان کار بکن اگه دومی بود فلان کار دیگه. هرکدوم از این آرایه ها توی یکی از دورهای while تولید میشن.
پاسخ
تشکر شده توسط:
#14
ممنون از اینکه وقت گذاشتید.
کد:
Array
(
    [0] => 1
    [id] => 1
    [1] => 1
    [form_id] => 1
    [2] => 0
    [element_id] => 0
    [3] => مرورگرهای سازگار
    [element_title] => مرورگرهای سازگار
    [4] => select2
    [element_type] => select2
    [5] => 0
    [element_size] => 0
    [6] => 0
    [required] => 0
    [7] => 1429080648
    [time] => 1429080648
)
Array
(
    [0] => 2
    [id] => 2
    [1] => 1
    [form_id] => 1
    [2] => 1
    [element_id] => 1
    [3] => فریمورک سازگار
    [element_title] => فریمورک سازگار
    [4] => select2
    [element_type] => select2
    [5] => 0
    [element_size] => 0
    [6] => 0
    [required] => 0
    [7] => 1429080648
    [time] => 1429080648
)
پاسخ
تشکر شده توسط:
#15
خوب الان شما باید جایی که print_r گذاشتین، یه switch یا if براساس element_title بگذارین (ضمناً از fetch_assoc بجای fetch_array استفاده کنید تا حافظه دوبرابر مصرف نشه).

اگه اندیس element_title از element_row$ مرورگرهای سازگار بود، بریزین توی جدول اول و اگه نبود توی جدول دوم ذخیره کنید.
پاسخ
تشکر شده توسط: mehr1362




کاربران در حال بازدید این موضوع: 2 مهمان