2012-01-23 24 views
1

我一直试图让这个工作,不能。在数组中使用php填充min函数?

我有一个像pop.2,rundo.5,moti.3一个字符串,我试图让poprundo,并且motimin与已填充associative array功能。

最终结果应该像或镜像,

$min = min($user['pop'], $user['rundo'], $user['moti']); 

到目前为止,我有

$items = 'pop.2,rundo.5,moti.3'; 
// EXPLODE MINUS ITEMS 
$minus = explode(',', $items); 
// GET MINUS ITEMS AMOUNT 
foreach($minus as $item) { 
    $itemMinus[] = explode('.', $item); 
} 

这是据我得到了,我现在卡住。我尝试过几种方法,但无济于事。

我知道我能得到像这样的价值观,

$itemMinus[0][0] // pop 
$itemMinus[1][0] // rundo 
$itemMinus[2][0] // moti 

但我需要动态地生成它,因为我可以在有多个值,如youdo.3,gate.3,hiya.4,moti.0,yellow.2字符串被投入。

任何想法和感谢。

回答

1

你快到了。使用list()拿到钥匙和值:

$itemsMinus = array(); 
$items = 'pop.2,rundo.5,moti.3'; 
// EXPLODE MINUS ITEMS 
$minus = explode(',', $items); 
// GET MINUS ITEMS AMOUNT 
foreach($minus as $item) { 
    // Add to the array by key 
    list($key, $value) = explode(".", $item); 
    $itemsMinus[$key] = $value; 
} 

print_r($itemsMinus); 
Array 
(
    [pop] => 2 
    [rundo] => 5 
    [moti] => 3 
) 
+0

酷我会尝试这种感谢!?会让你知道我怎么样! –

0

作为替代迈克尔后,您可以使用sscanf方法,而不是listexplode

$items = 'pop.2,rundo.5,moti.3'; 
// EXPLODE MINUS ITEMS 
$minus = explode(',', $items); 
// GET MINUS ITEMS AMOUNT 
foreach($minus as $item) { 
    sscanf($item,'%s.%d', $key, $value); 
    $itemsMinus[$key] = $value; 
} 
+0

以前从未见过。会看起来这个,欢呼。 –