Удалите значение, разделенное точкой с запятой, из массива и добавьте в качестве нового значения - PullRequest
0 голосов
/ 12 марта 2019

У меня проблема с точкой с запятой в массиве. В десятом указателе есть 3 имени [Leaf; Семя; Фрукты] в 1 значение.

Теперь, что мне нужно, это удалить семена и фрукты из 10-го индекса и поместить их в массив с индексами 41 и 42. То же самое в 37 и 39 индексах.

array

Заранее спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Вы можете зациклить массив и разбить на точку с запятой.
Затем заменить значение в массиве первым элементом разнесенного и объединить остальные с основным массивом.

foreach($arr as $key => $val){
    $temp = explode("; ", $val);
    $arr[$key] = $temp[0];
    $arr = array_merge($arr, array_slice($temp,1));
}

var_dump($arr);

https://3v4l.org/epIY9

0 голосов
/ 12 марта 2019
<?php

// Array containing semi-colon space separated items
$plantPartNames = array(
    "a",
    "b",
    "c; d; e",
    "f",
    "g",
    "h; i; j",
    "k"
);

// Store additions
$additions = array();

// Loop through array
foreach ($plantPartNames as &$val) {
  // Check for semi-colon space
  if (strpos($val, "; ") === false) {
    continue;
  }
  // Found so split.
  $split = explode("; ", $val);
  // Shift the first item off and set to referenced variable
  $val = array_shift($split);
  // Add remaining to additions
  $additions = array_merge($additions, $split);
}

// Add any additions to array
$plantPartNames = array_merge($plantPartNames, $additions);

// Print
var_export($plantPartNames);

// Produces the following:
// array ( 0 => 'a', 1 => 'b', 2 => 'c', 3 => 'f', 4 => 'g', 5 => 'h', 6 => 'k', 7 => 'd', 8 => 'e', 9 => 'i', 10 => 'j', )

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...