2013-11-24 3 views
0

У меня есть переменная, которая получает массив из include-файла, и я хочу использовать foreach из этого массива в другом файле и отображать случайный идентификатор из моего массива.foreach shuffle или array_rand() из функции из файла include

Здесь массив, который у меня есть из файла include. (Из /products.php)

function get_all() { 
$products = array(); 
$products[101] = array(
    "name" => "Red", 
    "img" => "img-101.jpg", 
    ); 
$products[102] = array(
    "name" => "Blue", 
    "img" => "img-102.jpg", 
    ); 
$products[103] = array(
    "name" => "Green", 
    "img" => "img-103.jpg", 
    ); 
foreach ($products as $product_id => $product) { 
    $products[$product_id]["sku"] = $product_id; 
} 
return $products; 
} 

(От display.php) Теперь я Iwant вызвать функцию из products.php в переменную и он пройти через цикл по каждому элементу. Вот мой код ниже ..

require_once include("products.php"); 

$random = function get_all(); 
$shuffle = shuffle($random); 

foreach($shuffle as $product) { 
    echo $product["name"]; 
    echo $product["img"]; 
} 

Это код, который я пытался, но он продолжает выплевывать ошибки, говоря переменная не определена.

Может кто-нибудь, пожалуйста, дайте мне знать, что я здесь делаю неправильно? и как это исправить.

Заранее спасибо

+0

http://us2.php.net/shuffle –

ответ

0

u_mulder показывает вам ошибку реализации

изменить это

$shuffle = shuffle($random); 

к следующему

shuffle($random); 

смотреть за этой ошибки, перейдите к manual/shuffle и проверить подпись функции

bool shuffle (array &$array) 

Эта функция возвращает логическое значение, и будет влиять на ваш массив из-за него передавая как ссылку. Остальное похоже, что он должен работать

+0

Спасибо..процесс shuffle ($ random) работал .. Мне также пришлось изменить foreach обратно в $ random как $ products .. – Paul

0

Попробуйте с использованием,

$random = get_all(); 
shuffle($random); 

foreach($random as $product) { 
    echo $product["name"]; 
    echo $product["img"]; 
} 

Вместо

+0

Не забывайте, что 'shuffle' возвращает ** bool ** –

+1

@u_mulder Почему бы вам не опубликовать ответ? – Mihai

+0

@Paul Я обновил ответ, пожалуйста, проверьте –

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