duanjia4817
2019-05-20 15:05
浏览 72
已采纳

如何用2个数组创建一个对象数组?

i'm trying to create an array of objects but its kinda hard for me to do it. Can you guys help me?

THis is what i have right now:

              $id_mercado = strip_tags($obj->idMercado);


                $sql    = "SELECT * FROM mercados WHERE id = $id_mercado";
                $stmt   = $pdo->prepare($sql);
                $stmt->execute();

               $row  = $stmt->fetch(PDO::FETCH_OBJ);
               $siglas = explode("
", $row->dicionario_familias_sigla);
               $significados = explode("
", $row->dicionario_familias_significado);

               class Dicionario{
                public $siglas;
                public $significados;
                }

                $listaFiltros = new Dicionario(); 
                        $listaFiltros->siglas = $siglas;
                        $listaFiltros->significado = $significados; 

So siglas is

["EX", "RO", "DI", "OR", "VE"]

Significado is

["Exoticos","Rosas","Diversos","Orquideas","Verdes"]

the output i want is:

0: {sigla: "EX", significado: "Exoticos"} 
1: {sigla: "RO", significado: "Rosas"} 
2: {sigla: "DI", significado: "Diversos"} 
3: {sigla: "OR", significado: "Orquedeas"}
4: {sigla: "VE", significado: "Verdes"}

UPDATE

for($i = 0; count($significados)> $i; $i++){
                $listaFiltros[] = (object) array('sigla' => $siglas[$i], 
                                                 'significado' => $significados[$i]);
 }
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doudinghan8319 2019-05-20 15:13
    已采纳

    I don't use PDO, but you can use the fields returned from your SELECT statement, populate the objects, and then push them to the array you want like this...

    $myArr = []; 
    
    $object = (object)[
        "sigla": $row->dicionario_familias_sigla,
        "significado": $row->dicionario_familias_significado
    ];
    
    array_push($myArr, $object);
    
    打赏 评论

相关推荐 更多相似问题