2012-02-20 2 views
2

Я делаю небольшой калькулятор, который случайным образом отображает последовательность из 3 символов (-, / и \).PHP: Множество массивов в один

Как объединить три массива в один? Я использую array_merge, но он создает массив, в котором размещаются 3 массива. Как я могу сделать этот массив одномерным?

Мой код (обратная связь приветствуется):

$_SESSION["sekvenssi"] = 15; //sekvenssi means "sequence" in Finnish. 

$maara1 = rand(1, $sekvenssi/2); //Maara means "amount" 
$maara2 = rand(1, $sekvenssi/2); 

$kenot = array_fill(0, $maara1, "/"); 
$vastakenot = array_fill(count($kenot), $maara2, "\\"); 
$tayte = array_fill(
    count($kenot)+count($vastakenot), 
    $_SESSION["sekvenssi"]-$maara1-$maara2, 
    "-" 
); 

$kaava = array_merge(array($tayte), array($kenot), array($vastakenot)); 
shuffle($kaava); 

print "<p style='font-family: Courier;font-size: 18px;'>"; 
    foreach ($kaava as $komponentit) { 
    print $komponentit; 
} 
print "</p>"; 

Так что это выводит «ArrayArrayArray», но я хочу, чтобы произвести один массив только один уровень (в настоящее время она имеет 2 уровня и, следовательно, не могут быть напечатаны).

+0

Ну, одна «лучшая практика» заключается не в том, чтобы отправлять код на англоязычный форум, где есть неанглийские имена переменных. :) – Zecc

+0

@BenLee Я бы сказал, что это немного отличается, поскольку у него, похоже, есть несколько разногласий, таких как предположения, что он не может печатать 2-мерный массив, он объединяет три массива, а не сплющивает один и т. Д. – Incognito

+0

К сожалению, в следующий раз я сделаю лучше :) – Sampsa

ответ

1

Вы уже создали массив, когда используете array_fill, поэтому, когда вы их объединяете, вы создаете еще один набор массивов с каждым массивом.

Попробуйте это изменить:

$kaava = array_merge(array($tayte), array($kenot), array($vastakenot)); 

в

$kaava = array_merge($tayte, $kenot, $vastakenot); 
+0

Спасибо вам большое! Вот так! Мне просто нравится это сообщество, я получил ответ примерно через 3 минуты. – Sampsa

0

изменение

$kaava = array_merge(array($tayte), array($kenot), array($vastakenot)); 

в

$kaava = array_merge($tayte, $kenot, $vastakenot); 

вы можете использовать print_r() или var_dump() для тестовых выходных переменных в php. он будет корректно отображать массивы и объекты.