2013-01-04 26 views
0

我想嘗試換這個數組的第一個和最後一個索引的:針對關聯(one-demonsional)數組的特定部分?

<?php 
$their_name = array(
     'Jim' => 'dad', 
     'Josh' => 'son', 
     'Jamie' => 'mom', 
     'Jane' => 'daughter', 
     'Jill' => 'daughter' 
); 
?> 

因此,它看起來就像這樣:

<?php 
$their_name = array(
     'Jill' => 'dad', 
     'Josh' => 'son', 
     'Jamie' => 'mom', 
     'Jane' => 'daughter', 
     'Jim' => 'daughter' 
); 
?> 

我昨晚做了類似的事情,使用這些數組:

$temp     = $user_name[0];  
$user_name[0]   = end($user_name);  
$count     = count($user_name); 
$user_name[$count-1] = $temp;    
return $user_name;        

我假設這些方法是類似的。但是,$ their_name [0]返回'J'。

謝謝!

+0

你能給一個具體的例子「目標特定部分」是什麼意思? –

+0

什麼語言?它看起來像PHP,但你應該明確地標記它。 – Barmar

回答

1

這裏有一個潛在的解決方案,以您的具體問題......

$their_name = array(
    'Jim' => 'dad', 
    'Josh' => 'son', 
    'Jamie' => 'mom', 
    'Jane' => 'daughter', 
    'Jill' => 'daughter' 
); 
// rewind array pointer to first element 
reset($their_name); 
// get key name 
$firstKey = key($their_name); 
// get value and remove from array 
$firstValue = array_shift($their_name); 

// advance pointer to last element 
end($their_name); 
// get key name 
$lastKey = key($their_name); 
// get value and remove from array 
$lastValue = array_pop($their_name); 

// first element using last key and first value 
$firstElement = array($lastKey => $firstValue); 
// last element using first key and last value 
$lastElement = array($firstKey => $lastValue); 

// add them to the remaining elements 
$their_name = $firstElement + $their_name + $lastElement; 

var_dump($their_name); 
// Result: 
array(5) { 
    ["Jill"]=> 
    string(3) "dad" 
    ["Josh"]=> 
    string(3) "son" 
    ["Jamie"]=> 
    string(3) "mom" 
    ["Jane"]=> 
    string(8) "daughter" 
    ["Jim"]=> 
    string(8) "daughter" 
} 
1

這似乎令人難以置信的基礎,但是這是你問一下:

echo $their_name['Jane']; 

$their_name['Josh'] = 'son-in-law'; 
+0

這確實是基本的,但我的目標是進一步與它進一步。我想讓名字(吉姆)和最後(吉爾)開關的地方。我只需要掌握基本知識,以便我可以更準確地瞄準它。 一旦我這樣做,我會盡量使它可重複,所以如果添加一個新名字,說'傑基',它會與'吉姆'交換,吉爾將在它的合適的地方。 – Peter

+0

我嘗試使用end($ their_name),導致'女兒'。我沒有想到。 – Peter

+0

你爲什麼不期望呢?這是數組中的最後一個值,不是嗎?無論如何,它聽起來像'array_splice()'是你正在尋找的功能,把元素放在數組中的特定位置。 – Barmar