3 стойности в масив и сравняване

  • Автор Автор Hous
  • Начална дата Начална дата

Hous

Registered
Чудя се може ли да се направи така, че да имам по 3 стойности в даден масив, тоест не само 3 стойности а по 3 стойности за всяка... пример:

PHP:
$standardarray=array(
"Volvo",
"BMW",
"Toyota");
//тва което искам аз
$arrayy=array(
"Volvo"['Volvo car's name comes from latin...']['http://volvo.com'],
"BMW"['BMW is (i have no idea)...']['http://bmwcars.com'],
"Toyota"['Description']['http://toyota.com']);

И после ми трябва да търся само VOLVO/BMW/TOYoTA в даден стринг:
PHP:
foreach($arrayy as $carname) {
$text= str_replace($carname,'<a href='carlink' title='cardescription'>carname</a>', $text);
}
цялата идея е да дам линкове към всички модели коли, като срещу всяка имам зададена в масив описание и линк.
Или ще трябва да го правя многоизмерен масив?
Код:
$arrayy= array
  (
  array("Volvo",'Vovol description','http://volvo.com'),
  array("BMW",'BMWdescription','http://bmw.com'),
  array("Toyota",'Toyota description','http://toyota.com')
);


Някакви насоки?
 
//тва което искам аз
$arrayy=array(
"Volvo"['Volvo car's name comes from latin...']['http://volvo.com'],
"BMW"['BMW is (i have no idea)...']['http://bmwcars.com'],
"Toyota"['Description']['http://toyota.com']);
Дефакто ти правиш точно това - двумерен масив! Само че не по начина по който ти го правиш, а така:

PHP:
$cars = array(
    'Volvo' => array(
        'decsription' => 'Volvo e marka koli',
        'site' => 'volvo.com'
    ),
    'BMW' => array(
        'decsription' => 'BMW e marka koli',
        'site' => 'bmw.com'
    ),
    'Toyota' => array('decsription' => '...', 'site' => '...')
);

И ето как се използва:

PHP:
foreach($cars as $car) {

$car_desc = $car['decsription'];
$car_site = $car['site'];

}
 
Ами опитах така, но нищо не се получава:
PHP:
$words= array(
'БМВ' => array('decsription' => 'Още за БМВ', 'site' => 'http://бмв.бг'),
'Тойота' => array('decsription' => 'Още за Тойота', 'site' => 'http://тойота.бг'));

foreach($words as $word) {
$text= str_replace($word,'<a href="'.$word['site'].'" title="'.$word['decsription'].'">'.$word.'</a>', $text);
}

А предния пример които дадох работеше...
 
Ами нестава, защото $word ти се явява масив. Погледни горе колегата какво ти е написал и огледай примера пак.

Ето как тряба да стане:
PHP:
foreach($words as $word)
{
$text .= '<a href="'.$word['site'].'" title="'.$word['decsription'].'">'.$word['description'].'</a> <br />';
}

echo $text;


:idea: :?:
 
Е нали идеята е да използвам str_replace на думата, как да го направя, така както ти си дал е само текст... :)
 
Hous каза:
Е нали идеята е да използвам str_replace на думата, как да го направя, така както ти си дал е само текст... :)
Ти искаш да смениш всяка дума и после да ги свържеш всички в стринг, или директно да изкараш стринг със заместените думи?
 
Както дадох в примера, искам да сменя думата със линк със title
тоест:

Тук имаме примерен текст със БМВ , чиято компания е на 130 години бла бла, Тойота която е на 45 години и още.

И думите които ги имам в масивите
Код:
$words= array(
'БМВ' => array('decsription' => 'Още за БМВ', 'site' => 'http://бмв.бг'),
'Тойота' => array('decsription' => 'Още за Тойота', 'site' => 'http://тойота.бг'));
да ги заместя в стринга с линкове с Title
Код:
Тук имаме примерен тескст със <a href="http://бмв.бг" title="Още за БМВ">БМВ</a>, чиято компания е на 130 години бла бла,...
 
PHP:
$words= array(
'БМВ' => array('decsription' => 'Още за БМВ', 'site' => 'http://бмв.бг'),
'Тойота' => array('decsription' => 'Още за Тойота', 'site' => 'http://тойота.бг'));

foreach($words as $car_name => $car_info) {
    //това за всеки случай
    $car_info['site'] = addslashes($car_info['site']);
    $car_info['description'] = addslashes($car_info['description']);
    echo 'Тук имаме примерен тескст с <a href="'.$car_info['site'].'" title="'.$car_info['description'].'">'.$car_name.'</a>';
}
Taка?
 
Пак е същото нещо, тук само показваш текста (echo) идеята ми е БМВ и ТОЙОТА да се замества със линкове... (str_replace)
 
Така?

PHP:
$words= array(
'БМВ' => array('decsription' => 'Още за БМВ', 'site' => 'http://бмв.бг'),
'Тойота' => array('decsription' => 'Още за Тойота', 'site' => 'http://тойота.бг'));

foreach($words as $car_name => &$car_info) {
    //това за всеки случай
    $car_info['site'] = addslashes($car_info['site']);
    $car_info['decsription'] = addslashes($car_info['decsription']);

    $car_info = 'Тук имаме примерен тескст с <a href="'.$car_info['site'].'" title="'.$car_info['decsription'].'">'.$car_name.'</a>';
}
var_dump($words);

http://sandbox.onlinephpfunctions.com/code/36b53b4c38df0e34fd842911978643a4123f0412
 
PHP:
<?php
	$words= array(
		'БМВ' => array('description' => 'Още за БМВ', 'site' => 'http://бмв.бг'),
		'Тойота' => array('description' => 'Още за Тойота', 'site' => 'http://тойота.бг')
	);

	$text = "Тук имаме примерен текст със БМВ , чиято компания е на 130 години бла бла, Тойота която е на 45 години и още.";

	foreach( $words as $car=>$info ) {
		
		if ( stristr($text, $car) !== FALSE ) {
			$text = str_replace($car, "<a href='{$info['site']}' title='{$info['description']}'>{$car}</a>", $text);
		}
		
	}
			
	echo $text;

Предполагам това искаш ?

http://codepad.viper-7.com/Qru3ks
 
@anonimen съжалявам но Revelation ме разбра и даде работещ пример за това точката отива за него. Благодаря и на 2мата за отделеното време! :)
 

Back
Горе