Eu busco post_id de postmeta como:
$post_id = $wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE (meta_key = 'mfn-post-link1' AND meta_value = '". $from ."')");
quando tento print_r($post_id);
, tenho uma matriz assim:
Array
(
[0] => stdClass Object
(
[post_id] => 140
)
[1] => stdClass Object
(
[post_id] => 141
)
[2] => stdClass Object
(
[post_id] => 142
)
)
e eu não sei como atravessá-lo, e como eu poderia obter um array como este
Array
(
[0] => 140
[1] => 141
[2] => 142
)
Alguma ideia de como posso fazer isso?
Respostas:
A maneira mais fácil é codificar seu objeto em JSON e depois decodificá-lo de volta para uma matriz:
Ou, se preferir, também pode percorrer o objeto manualmente:
fonte
$array = json_decode($object,true)
?json_decode(json_encode($object), True)
retornou um array diferente em comparação com o loop foreach. O loop foreach retorna a matriz no formato que OP pediu.Muito simples, primeiro transforme seu objeto em um objeto json, isso retornará uma string de seu objeto em um representante JSON.
Pegue esse resultado e decodifique com um parâmetro extra de true, onde será convertido em array associativo
fonte
Experimente isto:
fonte
Você pode converter um objeto std em array como este:
fonte
Para matrizes unidimensionais:
Para matriz multidimensional:
fonte
ARRAY_A é um argumento "output_type". Pode ser uma das quatro constantes predefinidas (o padrão é OBJECT):
Consulte: http://codex.wordpress.org/Class_Reference/wpdb
fonte
Ao converter um objeto de classe STD em array.Cast o objeto em array usando a função array do php.
Experimente com o seguinte trecho de código.
fonte
Você pode tentar isto:
fonte
Usando o ArrayObject do Std ou construindo o seu próprio
você pode usar o método integrado na nova classe:
ou passe o novo objeto para
fonte
$existingStdClass
tiver uma propriedade que seja outrastdClass
, essa propriedade permanecerá como stdClass na matriz resultante. Se você precisa de algo que funcione recursivamente, então parece que você precisa usar as técnicas jsonVamos assumir que $ post_id é um array de $ item
texto forte
fonte
se você tiver uma matriz e o elemento da matriz for
stdClass
item, esta é a solução:agora o
stdClass
foi substituído por um array dentro do array como um novo elemento do arrayfonte
Existem duas maneiras simples de converter o objeto stdClass em um Array
e outro é
ou você pode simplesmente criar uma matriz usando o loop foreach
fonte
Eu tenho uma função
myOrderId($_GET['ID']);
que retorna OBJ multidimensional. como uma string .Nenhum dos outros 1 forro funcionou para mim.
Ambos funcionaram:
fonte