2011-04-23 35 views
0

有我也有刪除一個陣列的關鍵 不是已經在其他陣列,像取出鑰匙在其它陣列

/** 
    * I Have This Array, With Keys 
    * Name, Lastname, Date 
    */ 
    $Array = Array('name' => 'Mike', 'lastname' => 'Griggs', 'date' => strftime('%A %c')); 
    /** 
    * And The Split , Make This One Array 
    */ 
    $Fields = 'name, lastname'; 
    foreach(split(',', str_replace(' ', NULL, $Fields)) as $Index => $Field): 
      if(!array_key_exists($Field, split(',', str_replace(' ', NULL, $Fields)))): 
        unset($Array[$Field]); 
      endif; 
    endforeach; 
    print_r($Array); 
    /** 
    * i Have to Remove The Elements of $Array 
    * That Not Have in $Fields, In This Case, Unset 'date' From $array 
    */ 

但Retorning日期字段在陣列 我需要取消設置鍵不都在$領域從Array, 如果不要有名稱的Array,只返回名字..

感謝的[]

+1

你爲什麼善用每一個字? – Blender 2011-04-23 18:41:12

+0

對不起,不瞭解你問題=) – XMLP4rse 2011-04-23 18:42:23

+0

我也沒有,對不起... – Blender 2011-04-23 18:43:24

回答

0

你應該考慮在適當的英語在格式化您的問題。主要是因爲用戶會批評它而不是回答它或完全忽略它。

這就是說,我假設你有一個數組和一個逗號分隔索引的字符串。然後你想通過刪除額外的數據來「清理」你的數組。

這裏有一個關於你可能如何做到這一點的例子:

<?php 
$array = Array('name' => 'Mike', 'lastname' => 'Griggs', 'date' => strftime('%A %c')); 
$fields = 'name, lastname'; 

function removeIndex($a,$f){ 
    $f=explode(',',$f); 
    $b=array(); 
    foreach($f as $v){ 
     $v=trim($v);// only need if you have extra whitespace 
     $b[$v]=$a[$v]; 
    } 
    return $b; 
} 

$array=removeIndex($array,$fields); 
print_r($array); 
?> 
+0

謝謝',其作品=) – XMLP4rse 2011-04-23 18:48:02

+0

停止大寫每個單詞。我很高興它的工作。 – Khez 2011-04-23 18:48:57

+0

我怎樣才能'取消'該字段? – XMLP4rse 2011-04-23 18:57:04