2016-09-07 3 views
-1

У меня есть массив в PHP я тяну в моем JQuery так:проверка JQuery, если inArray из массива PHP

var hide = <?php echo json_encode($user_dashboard); ?>; 

это дает мне:

var hide = "a:2:{i:0;s:18:\"dashboard-progress\";i:1;s:19:\"dashboard-bookmarks\";}"; 

Я имел некоторый код, который работает нормально, когда массив был просто строка, но теперь оно не сравнить элементы:

if ( $.inArray($this.attr('id') , hide) != -1) 

в основном ее просто тестирования в группе элементов идентификаторов против обр ау. Если массив содержит идентификатор, то что-то делать. Когда массив был как раз:

var hide = "dashboard-progress", "dashboard-bookmarks"; 

Он работал нормально. Но теперь я должен хранить массив в php и MySQL.

var_dump($user_dashboard) содержит string(67) "a:2:{i:0;s:18:"dashboard-progress";i:1;s:19:"dashboard-bookmarks";}"

Данные вытягивается из массива ввода в поле MySQL с помощью PHP Serialize.

+0

Что у вас есть строка , а не массив. Он также очень сильно отформатирован; это похоже на попытку JSON, но в нем много ошибок синтаксиса. Вам нужно исправить свои данные, прежде чем вы сможете это сделать –

+0

Это неправда json !! Итак, как вы его сгенерировали? – RiggsFolly

+0

Похож на результат PHP 'serialize()' – RiggsFolly

ответ

1

Да строка, которую вы имеете в $user_dashboard является упорядоченным массивом, поэтому попробуйте этот код вместо того, чтобы сначала преобразовать эту строку в массив, а затем преобразовать его в JSON строку

var hide = <?php echo json_encode(unserialize($user_dashboard)); ?>; 
+0

Я просто понял, что забыл вернуть его к массиву из строки, когда я обновил этот код. – Packy