Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SlyX

Pesquisa interna nos valores da array...

Recommended Posts

é 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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.