2013-05-07 39 views
5

Tôi có một mảng như dưới đây (mảng 1) và tôi cần phải loại bỏ stdClass khỏi nó như trong mảng số không dưới đây. 2. Hiện tại tôi đang làm nó bằng cách sử dụng một vòng lặp foreach, là có cách tốt hơn để làm điều đó wthout looping?Loại bỏ các đối tượng stdClass khỏi mảng

Mảng no.1

array(3) { 
    [0] => object(stdClass)#169 (4) { 
    ["id"] => string(2) "59" 
    ["name"] => string(13) "test" 
    ["email"] => string(21) "[email protected]" 
    ["telephone"] => string(20) "898998989" 
    } 
    [1] => object(stdClass)#190 (4) { 
    ["id"] => string(2) "58" 
    ["name"] => string(13) "test" 
    ["email"] => string(21) "[email protected]" 
    ["telephone"] => string(8) "71877858" 
    } 
    [2] => object(stdClass)#193 (4) { 
    ["id"] => string(2) "34" 
    ["name"] => string(9) "test" 
    ["email"] => string(22) "[email protected]" 
    ["telephone"] => string(13) "3189028092139" 
    } 
} 

Mảng no.2

array(3) { 
    [0] => array(4) { 
    ["id"] => string(2) "62" 
    ["name"] => string(5) "test" 
    ["email"] => string(22) "[email protected]" 
    ["telephone"] => string(10) "898998989" 
    } 
    [1] => array(4) { 
    ["id"] => string(2) "59" 
    ["name"] => string(13) "test" 
    ["email"] => string(21) "[email protected]" 
    ["telephone"] => string(20) "71877858" 
    } 
    [2] => array(4) { 
    ["id"] => string(2) "58" 
    ["name"] => string(13) "test" 
    ["email"] => string(21) "[email protected]" 
    ["telephone"] => string(8) "3189028092139" 
    } 
} 

Đây là những gì tôi làm (đúc)

foreach($moderationContacts as $contact) 
{ 
    $contacts[] = (array)$contact; 
} 
+0

Tại sao bạn muốn xóa nó? – Bananam00n

+0

Bạn không thể thao tác mảng mà không lặp. Bất kỳ giải pháp nào cũng sẽ cần một số dạng lặp tiềm ẩn. – deceze

+0

@ Bananam00n - Tôi cần phải tạo một đối tượng JSON từ nó bằng cách sử dụng json_encode – Shaolin

Trả lời

7

thử

$array = json_decode(json_encode($array), true); 

EDIT: Tôi đã kiểm tra trường hợp này, và nó hoạt động:

$stdClass= new stdClass(); 
$stdClass->test = "foo"; 
$array = Array(
    "a" => Array("b","c"), 
    "d" => $stdClass 
); 

$array = json_decode(json_encode($array), true); 

var_dump($array); 

OUTPUT

array 
    'a' => 
    array 
     0 => string 'b' (length=1) 
     1 => string 'c' (length=1) 
    'd' => 
    array 
     'test' => string 'foo' (length=3) 
2

Bạn có thể thử

$array = array_map(function ($v) { 
    return (array) $v ; // convert to array 
}, $array); 

Hoặc nếu dữ liệu này là từ json sử dụng

$array = json_decode($data,true); 
Các vấn đề liên quan