2016-11-02 3 views
-1

Допустим, у меня есть этот array:Присвоить массив в другой массив значений

$first = ['hi', 'by', 'nice'] 

Я собираюсь назначить другой массив этого массива items.In факта делает foreach петлю и из-за ситуации, назначить новый массив желаемый элемент массива. Теперь я хочу повернуть его так:

$second = ['hi', 'by' => ['really' => 'yes'], 'nice'] 

Как я могу это сделать программно?

+0

Вы хотите добавить значения array2 в array1 или добавить array2 внутри array1? – whisk

+1

Вам нужно больше деталей. Знаете ли вы значение 'bye' раньше времени? Знаете ли вы, что это индекс '1', который вы хотите изменить, и т. Д. – AbraCadaver

+0

Пожалуйста, отредактируйте свой вопрос, чтобы показать [что вы пробовали до сих пор] (http://whathaveyoutried.com). Вы должны включить [mcve] кода, с которым у вас возникают проблемы, тогда мы можем попытаться помочь с конкретной проблемой. Вы также должны прочитать [ask]. –

ответ

0

Попробуйте

$first = ['hi', 'by', 'nice']; 

foreach($first as $key => $value) 
{ 
    $second[] = $value; 
    if($value == 'by') 
    { 
     $second[ $value ][] = array('really' => 'yes'); 
    } 
} 
var_dump($second); 

Выход:

array(4) { 
    [0]=> 
    string(2) "hi" 
    [1]=> 
    string(2) "by" 
    ["by"]=> 
    array(1) { 
    [0]=> 
    array(1) { 
     ["really"]=> 
     string(3) "yes" 
    } 
    } 
    [2]=> 
    string(4) "nice" 
} 
0

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

$second = $first; 
$tofind = 'by'; 
$key = array_search($tofind, $second); 
unset($second[$key]); 
$second[$tofind] = array('really' => 'yes'); 
0

Это очень важно, если индекс by известен, чем вы можете использовать этот индекс для проверки и сохранить значения в новый массив, иначе это не удастся.

Вот простой пример:

<?php 
$first = ['hi', 'by', 'nice']; 
$newArr = array(); 
foreach ($first as $key => $value) { 
    if($value == 'by'){ 
     $newArr[$value] = array('really'=>'yes'); 
    } 
    else{ 
     $newArr[] = $value; 
    } 
} 
echo "<pre>"; 
print_r($newArr); 
?> 

Результат:

Array 
(
    [0] => hi 
    [by] => Array 
     (
      [really] => yes 
     ) 

    [1] => nice 
) 
0

Если я понимаю ваше требование, на самом деле есть много способов существует, чтобы сделать это. Это мое,

<?php 
$first = ['hi', 'by', 'nice']; 
foreach($first as $k=>$v){ 
    if($v !='by'){ 
     $second[] = $v; 
    }else{ 
     $second[$v] = ['really'=>'yes']; 
    } 
} 
print_r($second); 
?> 
Смежные вопросы