2013-10-04 2 views
0

У меня есть массив $ idarray.Передача массива из функции в другую функцию

array(3) { 
    [0]=> 
    string(4) "102" 
    [1]=> 
    string(4) "211" 
    [2]=> 
    string(4) "421" 
} 

Вызов другой функции: передать элемент массива.

foreach($idarray as $id){ 
$r = get_rate($id); 
    foreach($r as $result=> $row){ 
    } 
} 

Другая функция

function get_rate($qid){ 
foreach($qids as $qid){ 
execute sql here 
} 

ошибки возникают, когда я передать массив в функцию «Foreach ($ QIDS как $ QID)», то я не могу идти в заявлении Еогеасп и сделать выполнение , Как передать массив функции?

+0

'$ г = get_rate ($ ID),' здесь вы передаете элемент массива не массив !! –

+0

Я понимаю сейчас! Спасибо !!! – user2210819

ответ

1
foreach($idarray as $id){ 
    $r = get_rate($id); 
    ... 

передает строку, а не массив. Как вы можете видеть - ваш массив содержит строки, а не массивы. Это не многомерный массив. Использование строки как бы массива приведет к ошибке. Поэтому:

function get_rate($qid){ 
    foreach($qids as $qid){ 
    execute sql here 
    } 
} 

должен быть

function get_rate($qid){ 
    execute sql here, you already have a single id, $qid 
} 
1
foreach($idarray as $id){ 
$r = get_rate($id);//here $id is an array element not an array 
    foreach($r as $result=> $row){ 
    } 
} 

Другая функция

function get_rate($qid){ 
     //here $qid is a single element like 102,211,so on..... 
//no need foreach loop here,just execute your sql and return your result 
    //foreach($qids as $qid){ 
    execute sql here 
    //} 
} 
+0

в этом случае он может get_rate за один раз, а как насчет двух других? Как выполнить? – user2210819

+0

Пожалуйста, проверьте свой код, я проверял его работу. –

+0

Если вы запустите этот код: $ idarray = array (101,102,103,104); foreach ($ idarray as $ id) { $ r = get_rate ($ id); } Функция get_rate ($ qid) { echo 'Id:'. $ Qid. ','; } вы будете выглядеть следующим образом: Id: 101, Id: 102, Id: 103, Id: 104, –

Смежные вопросы