Diskuze: porovnávání řetězců

PHP PHP porovnávání řetězců American English version English version

Aktivity (1)
Avatar
Jakub Štolbaa:13. května 19:08

Ahoj, mám problém ohledně porovnávání řetězců. Potřeboval bych porovnat dva řetězce z databáze, vyhodit jestli jsou stejné nebo ne a pokud nebudou stejné tak vyhodit ty hodnoty, které nejsou obsaženy v jednom nebo druhém řetězci. např.

co tento řetězec:

a:4:{i:0;s:19­:"akismet/akis­met.php";i:2;s:­31:"plugincle­aner/pluginCle­aner.php";i:3;s:­17:"stolba/stol­ba.php";i:4;s:­27:"wp-super-cache/wp-cache.php";}

neobsahuje z tohoto řetězce:

a:2:{i:0;s:9:­"hello.php";i:1;s:­31:"plugincle­aner/pluginCle­aner.php";}

a vyhodit pouze toto i:0;s:9:"hello­.php"; jako výsledek.

Pokud někdo ví jak na to, budu velmi rád :) Děkuju.

Jakub Štolba

 
Odpovědět 13. května 19:08
Avatar
Odpovídá na Jakub Štolbaa
Uživatel sítě :13. května 20:24
<?php
$s = 'a:4:{i:0;s:19:"akismet/akismet.php";i:2;s:31:"plugincleaner/pluginCleaner.php";i:3;s:17:"stolba/stolba.php";i:4;s:27:"wp-super-cache/wp-cache.php";}';
$s2 = 'a:2:{i:0;s:9:"hello.php";i:1;s:31:"plugincleaner/pluginCleaner.php";}';

preg_match('~{(.*?)}~', $s, $m);
preg_match('~{(.*?)}~', $s2, $m2);
$e = explode(';', $m[1]);
$e2 = explode(';', $m2[1]);

$a = [];
foreach($e2 as $v){
  if(!in_array($v, $e)){
    $a[] = $v;
  }
}
var_dump($a);  //array(2) { [0]=> string(17) "s:9:"hello.php"" [1]=> string(3) "i:1" }
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 13. května 20:24
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.