2014-01-19 4 views
-3

Это мой массивИзменить ключ массива и значение

> Array ([0] => width:960px [1] => padding:0px [2] => margin:auto [3] 
> => position:relative) 

и мне нужно, чтобы это было

Array ([width] => 960px [padding] => 0px [margin] => auto [position] => relative) 

Это сводит меня с ума, если кто-нибудь может помочь с решением, которое я бы действительно благодарен. Заранее спасибо.

+2

Что вы уже пробовали? – kero

+0

Зациклируйте все данные, взорвите() на символ ':', установите первую часть ключа, вторую часть - на значение – Scuzzy

+0

Пробовал взорваться, но не имел атрибута Array вне моего цикла foreach * smacks head * Спасибо, ребята. – HireLee

ответ

1

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

$associativeArray = array(); 
foreach($indexedArray as $element) { 
    list($key, $value) = explode(':', $element, 2); 
    $associativeArray[ $key ] = $value; 
} 
0

Вы можете использовать explode разделить вашу строку, а затем добавить его в новый массив.

$new_array = array(); 
foreach($your_array as $value) { 
    list($css_key, $css_value) = explode(':', $value); 
    $new_array[$css_key] = $css_value; 
} 

Примечание: следует соблюдать осторожность при выполнении этого, чтобы не перезаписать ключи массива (например, если у вас несколько линий, как width: 600px и т.д.

+0

Как я могу предотвратить перезапись? – HireLee

+0

Вы должны вложить свои массивы так, чтобы они выглядели следующим образом: 'array (0 => array ('width' => '600px'), 1 => array ('width' => '650px'))' и т. Д. –

0

Что вы можете сделать, это

$assocArray = array(); 
foreach ($indexedArray as $v) 
{ 
    $key = substr($v, 0, strpos($v, ":")); 
    $value = substr($v, strpos($v, ":") + 1); 
    $assocArray[$key] = $value; 
} 
var_dump($assocArray); 
Смежные вопросы