Массивы кажутся одним из тех предметов, которые просто не хотят нажимать на меня. В SQL это выглядело проще ... Надеюсь, вы поможете ...
У меня есть два массива, которые я хочу сравнить раскладки ключей совершенно разные, я хочу сравнить * $ first_array-> place-> name * с * $ second_array-> post_name * тогда, если значение из первого массива не не существует во втором, то я хочу что-то с этим сделать, возможно, оператор вставки вида ..
<code> $first_array=simplexml_load_file('xml/file.xml'); // Load an XML file
echo "<p>Check we are getting a value from the 1st array: ".$first_array->place[0]->name."</p>";
//echo"<pre>";
//var_dump($first_array);
//echo"
";
$ Second_array = get_pages (); // Получить список сообщений из WP
echo "
Проверьте, что мы получаем значение из 2-го массива:". $ second_array [0] -> post_name. "
";
// Эхо "
";
//var_dump($second_array);
//echo"
";
Из первого массива ..
object(SimpleXMLElement)#99 (1) {
["place"]=>
array(5) {
[0]=>
object(SimpleXMLElement)#101 (14) {
["name"]=>
string(5) "China"
Из второго массива ..
array(6) {
[0]=>
object(stdClass)#199 (24) {
["post_title"]=>
string(5) "Japan"
более
[1]=>
object(stdClass)#197 (24) {
["post_title"]=>
string(5) "China"
1024 * более *
[2]=>
object(stdClass)#197 (24) {
["post_title"]=>
string(6) "Israel"
Разница, очевидно, в том, что Япония и Израиль
Обновление прогресса # 1
Я получил стадию, когда у меня есть два результата для записей, которые действительно существуют, но я хочу отдельный список записей, которые существуют в файле XML, но НЕ существует в $ second_array :
<code><?php
$xml = simplexml_load_file('xml/regions.xml');
// echo "<p>".$xml->place[0]->name."</p>";
echo"<pre>";
var_dump($xml);
echo"
";
$ args = array ('post_type' => 'page', 'child_of' => 20, 'exclude' => 22);
$ Wparray = get_pages ($ арг);
// echo "
". $ wparray [0] -> post_name. "
";
эхо "
";
var_dump($wparray);
echo"
";
foreach ($ xml as $ yregions_places) {
для ($ j = 0; $ j name == $ wparray [$ j] -> post_title) {
echo "
". $ yregions_places-> name. "
"; }
}
}
?>
Может ли кто-нибудь помочь мне перейти на следующий этап? Я действительно пытаюсь!
Обновление прогресса № 2
После указателя Брайана мне удалось, я думаю, у меня есть оба набора данных в массиве:
<code> $yregions_xml = (array)simplexml_load_file('xml/regions.xml');
// echo"<pre>";
// var_dump($yregions_xml);
// echo"
";
$ yregions_xml = array_pop ($ yregions_xml);
для ($ j = 0; $ j ". (trim (strtolower ($ yregions_xml [$ j] -> name))). "";
}
$ wpargs = array ('post_type' => 'page', 'child_of' => 20, 'exclude' => 22);
$ Wparray = get_pages ($ wpargs);
// echo "
";
// var_dump($wparray);
// echo"
";
для ($ j = 0; $ j ". (trim (strtolower ($ wparray [$ j] -> post_name))). "";
Так не мне ли делать какое-то сравнение?
Обновление о прогрессе # 3
<code>//store XML data in SimpleXMLObject
$xml = simplexml_load_file('xml/file.xml');
$first_array=array_pop($yregions_xml);
//initiate arrays
$first_array = array();
$second_array = array();
//populate arrays with object data that interests us
foreach($xml->place as $place){
foreach($place as $name){
$first_array[] = $name;
echo "<p style=\"color:green;\">".$name."</p>";
}
}
$wpargs = array('post_type' => 'page','child_of' => 20,'exclude' => 22);
foreach(get_pages($wpargs) as $page){
$second_array[] = $page->post_title;
echo "<p style=\"color:red;\">".$page->post_title."</p>";
}
//perform comparison
$unique_to_first_array = array_diff($first_array,$second_array);
echo "<pre>";
var_dump($unique_to_first_array);
echo "
";
// теперь делаем ваш SQL и т. д. с этим новым массивом
Завершенный код
Я оставил весь прогресс там, чтобы каждый мог видеть, что работа идет, надеюсь, это поможет другим больше. Я знаю, что боролся с этим. Спасибо @brian_d и @rrapuya за полные и прокомментированные ответы о помощи.
<code>// store XML data in SimpleXMLObject
$xml = simplexml_load_file('xml/file.xml');
// initiate arrays
$first_array = array();
$second_array = array();
// populate arrays with object data that interests us
foreach($xml->place as $place){
foreach($place->name as $name){
$first_array[] = $name;
// echo "<p style=\"color:green;\">".$name."</p>";
}
}
$wpargs = array('post_type' => 'page','child_of' => 20,'exclude' => 22);
foreach(get_pages($wpargs) as $page){
$second_array[] = $page->post_title;
// echo "<p style=\"color:red;\">".$page->post_title."</p>";
}
// perform comparison
$unique_to_first_array = array_diff($first_array,$second_array);
echo "<pre>";
var_dump($unique_to_first_array);
echo "
";
// теперь делаем ваш SQL и т. д. с этим новым массивом