Объединить некоторые элементы массива среди многих в PHP - PullRequest
2 голосов
/ 03 августа 2010

У меня есть массив "$ abc", который имеет 9 элементов, как: -

Array
(
    [a] => Jack
    [b] => went
    [c] => up
    [d] => the
    [e] => hill
    [f] => but
    [g] => never
    [h] => came
    [i] => back
)

Теперь мне нужно объединить только 4 элемента, начиная с индекса "b" и индекса "e"только.Но я не знаю, что делать.Я использовал функцию «implode ()» PHP в тех случаях, когда все элементы массива объединены.

Любая помощь очень ценится.

Ответы [ 2 ]

3 голосов
/ 03 августа 2010

Сначала необходимо извлечь нужные значения, а затем использовать implode.Вы можете использовать array_slice:

echo implode(" ", array_slice($abc, 1, 4));

Это даст went up the hill.

Если вам нужно работать с буквенными ключами, вы должны бытьнемного более креативно.В вашем случае, вероятно, лучше всего пройтись по массиву и сравнить, но вы также можете сделать что-то экзотическое:

echo implode(" ", array_intersect_key($abc, array_flip(range('b', 'e'))));
1 голос
/ 03 августа 2010
$test = array ( 'a' => 'Jack',
                'b' => 'went',
                'c' => 'up',
                'd' => 'the',
                'e' => 'hill',
                'f' => 'but',
                'g' => 'never',
                'h' => 'came',
                'i' => 'back'
              );
$start = 'b';
$end = 'e';

$result = implode(' ',array_slice($test,array_search($start,array_keys($test)),array_search($end,array_keys($test))-array_search($start,array_keys($test))+1));
echo $result;
...