2015-07-06 4 views
-2

Оригинального массиваКак PHP массив будет двигаться в одном измерения из двухмерного массива

Array ([1147183647] => 3 [2147483242] => 1) 

ожидается из положить

Array (1147183647,1147183647,1147183647,2147483242) 

как я могу расширить ключевую базу массива на их значениях

+0

['array_keys()'] (http://php.net/array_keys). – Darren

ответ

1

немного сексуальнее, чем те, которые используют 2 петли, чтобы использовать встроенный в array_fill функции

<?php 
$array = array(1147183647 => 3, 2147483242 => 1); 

$new=array(); 
foreach ($array as $key=>$var){ 
$new= array_merge($new,array_fill(0,$var,$key)); 
} 

print_r($new); 

демо: http://codepad.viper-7.com/NTcDhC

+0

может массив хранится в сеансе, поэтому я делаю это вот так. он возвращается, как это для меня, но это было как: Array ([0] => 0 [1] => 0 [2] => 0 [3] => 0) –

+0

Я сделал это :) Я ошибся при объявлении. спасибо –

+0

Привет, приятель, не могли бы вы проверить [этот номер] (http://chat.stackoverflow.com/rooms/82943/room-for-stack-and-dagon) на 5 минут? Я задал вопрос об одном файле '.php.bak' в простой MVC. только ты был, кто скачал его и дал мне хороший ответ. Теперь у меня есть новый вопрос, и я думаю, что только вы * можете мне помочь. ждем Вас ... –

1

перебирает каждой пары значений ключа и добавьте ключ к выходной матрице для числа значений повторений:

$output = array(); 
$arr = array(1147183647 => 3, 2147483242 => 1); 
foreach($arr as $v => $rep) { 
    for($i = 0; $i < $rep; $i++) { 
    $output[] = $v; 
    } 
} 
0

Вот простой фрагмент.

<?php 

//initialize array 
$array = array(
    "1147183647" => 3, "2147483242" => 1 
    ); 

//new array to hold the values 
$new =array(); 

foreach($array as $k=>$v){ 

    //echo $k."-".$v."<br>"; 
    for($i=0; $i<$v; $i++){ 
     $new[] = $k; 
    } 

} 

//check the output 
print_r($new); 
?> 
0

Попробуйте это.

$array = array(1147183647 => 3, 2147483242 => 1); 

    $result=array(); 
    foreach ($array as $key=>$var){ 
     $result= array_merge($result,array_fill(0,$var,$key)); 
    } 


    var_dump($result);