SlyX 0 Denunciar post Postado Janeiro 11, 2008 é o seguinte, tenho a seguinte array: Array ( [0] => Array ( [id] => 1 [titulo] => Ar Condicionado [abreviacao] => ARC ) [1] => Array ( [id] => 19 [titulo] => Arquitetura Executivo [abreviacao] => AEx ) [2] => Array ( [id] => 2 [titulo] => Arquitetura Projeto Legal [abreviacao] => ARQ ) [3] => Array ( [id] => 3 [titulo] => Atas de Reunião [abreviacao] => ATR ) [4] => Array ( [id] => 22 [titulo] => Automação/Seguranca/Predi [abreviacao] => ASP ) [5] => Array ( [id] => 4 [titulo] => Canteiro de Obra [abreviacao] => COB ) [6] => Array ( [id] => 29 [titulo] => Combate a Incendio [abreviacao] => CBI ) [7] => Array ( [id] => 6 [titulo] => Compatibilização [abreviacao] => CPB ) [8] => Array ( [id] => 7 [titulo] => Conv. Reunião [abreviacao] => CVR ) [9] => Array ( [id] => 8 [titulo] => Deliberações [abreviacao] => DLB ) [10] => Array ( [id] => 9 [titulo] => Estrutura [abreviacao] => EST ) [11] => Array ( [id] => 30 [titulo] => Hidro-Sanitaria [abreviacao] => IHS ) [12] => Array ( [id] => 24 [titulo] => Ifraestr de Automação [abreviacao] => IEA ) [13] => Array ( [id] => 25 [titulo] => Infraestrut de Som [abreviacao] => IES ) [14] => Array ( [id] => 26 [titulo] => Infraestrut de Telefone [abreviacao] => IET ) [15] => Array ( [id] => 10 [titulo] => Inst. Águra Pluvial [abreviacao] => IAP ) [16] => Array ( [id] => 11 [titulo] => Inst. Ar Comprimido [abreviacao] => IAC ) [17] => Array ( [id] => 13 [titulo] => Inst. Elétrica [abreviacao] => IEL ) [18] => Array ( [id] => 14 [titulo] => Inst. Esgoto [abreviacao] => IEG ) [19] => Array ( [id] => 15 [titulo] => Inst. Gás [abreviacao] => IGS ) [20] => Array ( [id] => 16 [titulo] => Inst. Hidráulica [abreviacao] => IHL ) [21] => Array ( [id] => 23 [titulo] => INST.AUTOMAÇÃO [abreviacao] => IAT ) [22] => Array ( [id] => 27 [titulo] => Luminitécnica [abreviacao] => LUM ) [23] => Array ( [id] => 28 [titulo] => Proteção Atmosférica [abreviacao] => PAT ) [24] => Array ( [id] => 21 [titulo] => Telefonia, Logica e Inter [abreviacao] => TLI ) [25] => Array ( [id] => 17 [titulo] => Topografia [abreviacao] => TOP ) [26] => Array ( [id] => 18 [titulo] => Tráfego [abreviacao] => TRF ) ) queria pegar esta arary e fazer tipo uma procura pelo ID=17 entao eu queria algo tipo $novaarray = $antigaArray(id == 17); como eu faço esta pesquisa por indices dentro da array? (sem ter q usar for para rodar toda a array ate achar ($array[25][id] == 17) acho que existe algum comando no php noc ontrole de array que faça isso, mas nao consegui localizar Compartilhar este post Link para o post Compartilhar em outros sites
batatinha66 0 Denunciar post Postado Janeiro 11, 2008 sinceramente... nao axa melhor usar um banco de dados??? outra coisa... pq voce nao usa o ID pra chamar o array ao inves de deixar o id dentro do array ai pra procurar o ID 17 voce usaria echo $array['17']; ou entao do jeito que voce esta fazendo fica assim: pra pegar os dados do ID 14 por exemplo... <?php $array = array(16 => array('id' => '15', 'titulo' => 'nome2', 'abreviacao' => 'YAS'), 18 => array('id' => '14', 'titulo' => 'Inst. Esgoto', 'abreviacao' => 'IEG')); $id = 14; foreach($array as $chave){ $numero = array_search($id,$chave); if($numero){ echo $chave['titulo']; echo "<br>"; echo $chave['abreviacao']; }} ?> Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Janeiro 11, 2008 viu desta forma tem q usar um for, nao me interessa =/ mesmo assim obrigado, estes resultados ja sao carregados no array quando chegam do database :D Compartilhar este post Link para o post Compartilhar em outros sites
narizgudo 0 Denunciar post Postado Janeiro 11, 2008 Ta aih uma função bem feia, mas q funfa... sem tempo pra mais detalhes. se você fizer oq o batatinha66 falou você pode usar: $arrayNova = array_search(17,$arrayAntiga); <? function busca($array,$item) { for ($x=0;$x<count($array);$x++) { if ($array[$x]['id'] == $item) { $fim['id'] = $array[$x]['id']; $fim['titulo'] = $array[$x]['titulo']; $fim['abreviacao'] = $array[$x]['abreviacao']; } } if (!isset($fim)) die("Nd encontrado"); return $fim; } $arrayNova = busca($arrayAntiga,17); print_r($arrayNova); ?> Flw =D Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Janeiro 14, 2008 viu desta forma tem q usar um for, nao me interessa =/ mesmo assim obrigado, estes resultados ja sao carregados no array quando chegam do database :D acho que ninguem me le =/ Compartilhar este post Link para o post Compartilhar em outros sites
Mario Helme 0 Denunciar post Postado Janeiro 14, 2008 Você quer fazer uma busca em uma Array Multidimensional sem usar algum laço? Se for isso, veja se isso resolve: <?php $array = array( array( "id" => 1, "titulo" => "Ar Condicionado", "abreviacao" => "ARC"), array( "id" => 19, "titulo" => "Arquitetura Executivo", "abreviacao" => "AEx"), array( "id" => 2, "titulo" => "Arquitetura Projeto Legal", "abreviacao" => "ARQ"), array( "id" => 3, "titulo" => "Atas de Reunião", "abreviacao" => "ATR"), array( "id" => 22, "titulo" => "Automação/Seguranca/Predi", "abreviacao" => "ASP") ); array_walk($array, "busca", 3); function busca($valor, $chave, $it) { if($valor['id']==$it){ echo $valor['titulo']." [".$valor['abreviacao']."]"; } return; } ?> O resultado desse exemplo será "Atas de Reunião [ATR]" Procure mais em informações em array_walk Compartilhar este post Link para o post Compartilhar em outros sites
SlyX 0 Denunciar post Postado Janeiro 16, 2008 é exatamente isso que eu precisava, obrigado! Compartilhar este post Link para o post Compartilhar em outros sites