PDA

View Full Version : سوال: ترکیب 3 تا آرایه



navid3d_69
یک شنبه 22 اردیبهشت 1392, 17:59 عصر
سلام من از یک فرم 3 تا مقدار نام , نام خانوادگی, جنسیت رو دریافت می کنم این ها هر کدوم توی یک ارایه هست

حالا می خوام این هارو به ترتیب توی یک آرایه جمع کنم الان این 3 تا آرایه با این صورت هست




Array
(
[7] => Array
(
[2] => محمد
[1] => مریم
)

)
Array
(
[7] => Array
(
[2] => رضایی
[1] => امیری
)

)
Array
(
[7] => Array
(
[2] => Male
[1] => Female
)

)





آرایه اولی نام رو داره آرایه دومی فامیلی رو و آرای سومی جنسیت رو

و اون اندیس 7 هم خیلی مهمه چون id جدول دیتابیس هست حالا من می خوام این ها کنار هم جمع بشن یعنی به این صورت





Array
(
[7] => Array
(
[1] =>Array
(
[Name] => محمد
[Family] => رضایی
[Gender] => Male
)

[2] =>Array
(
[Name] => مریم
[Family] => امیری
[Gender] => Female
)

)
)




من می خوام این رو بریزم آخر توی دیتابیس راهی هست که بهتر باشه از همین را استفاده کنم؟

rezaonline.net
یک شنبه 22 اردیبهشت 1392, 18:26 عصر
$name = array(); //fill it
$nicName = array(); //fill it
$sex = array(); //fill it

$key = array_keys($name);
$key = $key[0];

foreach($name[$key] as $_k=>$_v)
{
$data[$kay][$_k]['name']=$name[$key][$_k];
$data[$kay][$_k]['nicName']=$nicName[$key][$_k];
$data[$kay][$_k]['sex']=$sex[$key][$_k];
}

سه تا آرایه اول رو خودت مقدار دهی کن .:چشمک:

navid3d_69
یک شنبه 22 اردیبهشت 1392, 19:50 عصر
ممنون اون کد خیلی خوب بود حالا با این کد insert می کنم بنظر شما درست و بهینه هست؟




foreach ($data as $kk=>$vv){

foreach ($vv as $key=>$val){

foreach ($val as $k=>$v){
$arr[$k] = $v;
}

$Insert = mysql_query("INSERT INTO sefaresh_info (Name,Family,Gender,Type,P_Id,Sefaresh_id) VALUES('$arr[Name]','$arr[Family]','$arr[Gender]','1','$kk','')");


}

}

rezaonline.net
یک شنبه 22 اردیبهشت 1392, 22:31 عصر
خیر .
اول اینکه جای از این مساله مقادیر رو escape کن .
دوم اینکه با یک کوئری میشه همه رو اینسرت کرد بهش میگن insert batch
یه نمونه شو بر اساس کوئری خودت مینویسم .
INSERT INTO `sefaresh_info`
(Name,Family,Gender,Type,P_Id,Sefaresh_id) VALUES
('name1','fam1','gen1','1','k1','') ,
('name2','fam2','gen2','1','k2','') ,
('name3','fam3','gen3','1','k3','') ;

navid3d_69
دوشنبه 23 اردیبهشت 1392, 12:25 عصر
من الان یک مشکلی رو متوجه شدم این کد که برای آرایه ها بود یک مشکلی داره اگر آرایه های ما 2 تا یا بیشتر اندیس داشته باشن یعنی مثلا به جای 7 سه تا اندیس باشد فقط یکی رو نمایش میده برای حل این مشکل باید چی کار کنم؟

rezaonline.net
دوشنبه 23 اردیبهشت 1392, 14:54 عصر
مخ رو به کار می انداختی ، راحت میتونستی حلش کنی نوید .
این رو
$key = array_keys($name);$key = $key[0]; foreach($name[$key] as $_k=>$_v){ $data[$kay][$_k]['name']=$name[$key][$_k]; $data[$kay][$_k]['nicName']=$nicName[$key][$_k]; $data[$kay][$_k]['sex']=$sex[$key][$_k];}

رو بکن

$keyTemp = array_keys($name);
//$key = $key[0];
foreach($keyTemp as $key)
{
foreach($name[$key] as $_k=>$_v)
{
$data[$kay][$_k]['name']=$name[$key][$_k];
$data[$kay][$_k]['nicName']=$nicName[$key][$_k];
$data[$kay][$_k]['sex']=$sex[$key][$_k];
}
}

navid3d_69
دوشنبه 23 اردیبهشت 1392, 15:51 عصر
ممنون یعنی کل زبان های برنامه نویسی یک طرف این آرایه ها یک طرف نمی دونم چرا همش با اینا مشکل دارم بعد الان توی فیس بوک توی کامنت ها یکی از فیلد ها یک آرایه 15 بعدی بود اونو که دیدم گفتم دیگه باید هر جوری شده مشکلم رو با آرایه ها حل کنم

rezaonline.net
دوشنبه 23 اردیبهشت 1392, 17:14 عصر
با foreach میشه هر کاری کرد :)
شم ریاضی میخواد کمی :چشمک: + یک منطق چند بعدی .
انشاالله زود به نتیجه برسی