PDA

View Full Version : سوال در مورد خروجی به صورت آرایه



tux-world
شنبه 28 مرداد 1391, 17:34 عصر
سلام. من یه تابع نوشتم به صورت زیر که فیلدهای لازم برای جستجو رو بهش میدم:


$rt= array('dalil_gheybat','code_daneshamoozy');
print_r($db->loadObjectByList( $rt ));
public function loadObjectByList( $fieldName)
{
//$result = mysql_fetch_assoc($this->queryResult);
$array='';$i=0;
while($result=mysql_fetch_array($this->queryResult))
{
foreach ($fieldName as $value)
$array [ $i++ ] = array( "$value" =>$result[$value]);
}
return $array;
}
خروجی:


Array
(
[0] => Array
(
[dalil_gheybat] => مریض احوال بود
)
[1] => Array
(
[code_daneshamoozy] => 2222222
)

[2] => Array
(
[dalil_gheybat] => یی ی یی ی ی یی
)
[3] => Array
(
[code_daneshamoozy] => 2222222
)
)
مشکلم اینجاست که برای دسترسی برای هر کودوم از آرایه ها باید از دوتا حلقه استفاده کنم. چطوری میتونم کد رو بهینه کنم؟ شاید هم تابع درست کار میکنه ولی برای دسترسی آسون تابع رو نوشتم

tehro0n
شنبه 28 مرداد 1391, 18:59 عصر
تابع رو با تگ php بگذار قشنگ ببینیم چی نوشتی!

tux-world
دوشنبه 30 مرداد 1391, 01:13 صبح
کسى نظرى نداره؟

mtchabok
دوشنبه 30 مرداد 1391, 01:32 صبح
سلام
نمیدونم که خروجی ای که میخوای دقیقا چیه !.. اما کد زیر رو امتحان کن:

<?php
$rt= array('dalil_gheybat','code_daneshamoozy');
print_r($db->loadObjectByList( $rt ));
public function loadObjectByList( $fieldName)
{
$array=array();$i=0;
while($result=mysql_fetch_array($this->queryResult))
{
foreach ($fieldName as $value){
if(!isset($array[$i])) $array[$i] = array();
$array[$i][$value] = $result[$value];
}
$i++;
}
return $array;
}

tux-world
شنبه 04 شهریور 1391, 14:46 عصر
این تابع رو چطوری توسعه بدم که آرایه رو اینطوری در بیاره؟

0 => "دبیان", 1 => "فدورا", 5 => "سوزی", 9 => "آلاچیق" به جای این البته


Array
(
[0] => Array
(
[dis_id] => 0
[dis_name] =>دبیان
)

[1] => Array
(
[dis_id] => 1
[dis_name] =>فدورا
)

[2] => Array
(
[dis_id] => 5
[dis_name] => سوزی
)

[3] => Array
(
[dis_id] => 9
[dis_name] => آلاچیق
)
)

pejman_view
شنبه 04 شهریور 1391, 17:23 عصر
این تابع رو چطوری توسعه بدم که آرایه رو اینطوری در بیاره؟

0 => "دبیان", 1 => "فدورا", 5 => "سوزی", 9 => "آلاچیق" به جای این البته


Array
(
[0] => Array
(
[dis_id] => 0
[dis_name] =>دبیان
)

[1] => Array
(
[dis_id] => 1
[dis_name] =>فدورا
)

[2] => Array
(
[dis_id] => 5
[dis_name] => سوزی
)

[3] => Array
(
[dis_id] => 9
[dis_name] => آلاچیق
)
)



سلام

تابعی که اول داده بودید را اصلاح کردم.

public function loadObjectByList( $fieldName)
{
//$result = mysql_fetch_assoc($this->queryResult);
$array=''; \\ <-------- in ham eslah mishavad va be khate bad rojoo konid
$array=array();
//$i=0; <--------- in niyaz nist
while($result=mysql_fetch_array($this->queryResult))
{
foreach ($fieldName as $value)
//$array [ $i++ ] = array( "$value" =>$result[$value]);

//eslah mishavad be =
$array[$value] = $result[$value];
}
return $array;
}

اما برای مثال بالا هم مانند همین تابعی که اصلاح کردم عمل کنید، باز هم برای مثال یک تابع در زیر گذاشتم اگر آرایه دومی را در آن بریزید آرایه اولی خروجی می دهد:

public function test( $array)
{
$e_array= array();
foreach ($array as $val){
$e_array[$val['dis_id']] = $val['dis_name']
}
return $e_array;
}

موفق باشید

tux-world
یک شنبه 05 شهریور 1391, 09:02 صبح
بسیار متشکرم. سوالم اینکه که در صورتی که من ندونم این key ها و value ها چطورین تو دیتابیس چطوری میشه تابع رو طوری توسعه داد که برای همه مقادیر فچ شده کاربرد داشته باشه؟
یعنی این قسمت:

$e_array[$val['dis_id']] = $val['dis_name']
منظورم تعداد هستش که ممکنه معلوم نباشه بر حسب اون کوئری که میگیریم چطوری باشه اینا مثلا:

Array
(
[0] => Array
(
[dis_id] => 0
[dis_name] =>دبیان
[version]=>12
)
)