2015-06-18 3 views
-1

Можете ли вы показать мне, как создать новый массив каждые секунды с теми же ключами, что и в исходном массиве? InputСрезать элементный массив

$product_shop=[1=>200,5=>150, 10=>343, 2=>654, 6=>333] 

я нужен выход

$product_shop=[1=>200, 10=>343, 6=>333] 

Я не могу сортировать ключи.

+0

Have вы что-то пробовали? – Rizier123

+0

Конечно, но я не могу найти решение. http://pastebin.com/EZdhQb3C Я не знаю, как использовать предыдущий и следующий ключи, потому что эти ключи различаются, и мы не можем, например, $ products_shop [$ i] – Pekus

+0

Затем добавьте вашу попытку^s) в ваш вопрос. Это может только помочь, что мы точно видим, где вы застряли, и покажите вам, что вы сделали неправильно, и как это сделать правильно. – Rizier123

ответ

1

Я думаю, что это правильный путь

$product_shop=[1=>200,5=>150, 10=>343, 2=>654, 6=>333]; 
$second_array = []; 
$i = 0; 
foreach ($product_shop as $key=>$value) { 
    if ($i % 2 == 0) { 
     $second_array[$key] = $value; 
    } 
    $i++; 
} 
+0

Помните, что если запущен php <5.4, «[]» не удастся. В этом случае используйте «array()» – Alexandre

+0

Я знаю, но @Pekus дал пример с []; –

+0

looooollll, я потратил эту проблему примерно на 2 часа .. Мне кажется, нужно расслабиться. Спасибо! И я использую php> 5.4 :) – Pekus

1

следующий раз дать некоторые примеры того, что вы уже пробовали:

<?php 
$even = array(); 
$odd = array(); 
$i = 0; 
foreach($product_shop as $key => $value){ 
    if($i++%2===0){ 
     $even[$key] = $value; 
    } else { 
     $odd[$key] = $value; 
    } 
} 
var_dump($even, $odd); exit; 
?> 
1
$product_shop=[1=>200,5=>150, 10=>343, 2=>654, 6=>333]; 

$i = 0; 
$array = array_filter($product_shop, function ($e) use (&$i) { 
    return ++$i & 1; 
}); 

Это будет печатать:

array(3) { 
    [1]=> 
    int(200) 
    [10]=> 
    int(343) 
    [6]=> 
    int(333) 
} 
+0

Имхо слишком сложный ответ для новичка, но +1 тем не менее – Alexandre

+0

Что сложного? Я добавлю некоторые детали, если что-то неясно. – Federkun

+0

Это просто, что в вашем ответе использовались различные концепции, которые вряд ли будут знакомы или легко понятны тому, кто задает вопрос, который задал ОП, – Alexandre

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